[英]Ruby on Rails Aws SDK v2 constant 'Aws' undefined constant error in models
[英]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.