Rails aws dynamo插入数据库

时间:2015-10-14 13:43:33

标签: ruby-on-rails ruby amazon-web-services

我使用此代码插入dynamo db:

require "aws"

AWS.config(
    access_key_id: 'xxxxxxxxxxxxxxxxxx',
    secret_access_key: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    region: 'eu-west-1'
)

dynamo_db = AWS::DynamoDB.new


table = dynamo_db.tables['mytable']
table.hash_key = [:string, :string]

# add an item
table.items.create(id: '12345', 'foo' => 'bar')

一切正常,数据已插入,但我仍然收到此错误:

  

put_item响应中缺少哈希键值

我错过了什么?根据他们的documentation似乎没问题。

2 个答案:

答案 0 :(得分:1)

table.hash_key = [:string, :string]

需要更改为[:name_of_hash_key, :type_of_hash_key],例如

table.hash_key = [:id, :string]

答案 1 :(得分:1)

编辑:

我认为您需要删除对table.hash_key的调用,并在创建表时指定hash_key。以下是您似乎正在使用的API版本(V1)

中的示例
table = dynamo_db.tables.create(
  "MyTable", 10, 5,
  :hash_key => { :id => :string }
)
sleep 1 while table.status == :creating

请参阅此页面上的文档:

http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/DynamoDB.html#V1