繁体   English   中英

Ruby on Rails DynamoDB AWS开发工具包v2

[英]Ruby on Rails DynamoDB AWS SDK v2

我正在尝试通过我的Rails应用程序设置DynamoDB。 我正在使用Rails 4,并且正在使用AWS SDK 2。 我想从名为“ RoomRaw”的数据库中查询项目。

在我的Gemfile中:

gem 'aws-sdk', '~> 2'

在config / initializers / aws.rb中:

Aws.config({
  access_key_id: 'xxxxxxxx',
  secret_access_key: 'xxxxxxxxxxxx',
  region: 'ap-southeast-1'
})

在我的控制器中:

dynamo_db = Aws::DynamoDB::Client.new
dynamo_db.query({
  table_name: 'RoomRaw',
  key_conditions: {
    '_id' => {
      comparison_operattor: 'EQ',
      attribute_value_list: ['12345']      
    }
  }
})

我收到以下错误:

uninitialized constant WelcomeController::Aws

任何建议表示赞赏。

似乎有几个小问题。

  • 未初始化的常量错误-在aws-sdk上添加gem依赖项后,重新启动Rails应用程序。

  • SDK v2中的配置与v1中的配置略有不同。 在版本2中, Aws.config不是方法,它是普通的Ruby哈希。

请尝试以下操作:

Aws.config.update({
  access_key_id: 'xxxxxxxx',
  secret_access_key: 'xxxxxxxxxxxx',
  region: 'ap-southeast-1'
}) 

您应该重新启动Rails服务器。 初始化程序仅在启动时加载。

按照以下方式进行设置,然后重新启动服务器

AWS.config(
 access_key_id: 'your_access_key',
 secret_access_key: 'your_secret_access_key'
)

NameError:未初始化的常量AWS

如果收到此错误,则可能是您无意中将aws-sdk gem升级到了版本2。 版本2使用Aws命名空间,而不使用AWS。 这允许版本1和版本2在同一应用程序中使用。

有关更多信息,请参见此博客文章

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM