“提供的关键元素与模式不匹配”​​

问题描述:

我正在构建Rails应用程序。我正在使用dynamodb作为数据库表。我得到的错误“提供的关键元素与模式不匹配”​​

所提供的关键要素不匹配模式

在我的帮手/控制器:

session[:id] = @record.id 

笔者认为:

<% record_id = TableName.find(session[:id]) %>

我打印了session[:id]并进行了检查,它具有特定记录的正确标识。还检查了分贝。记录与我想要的一个匹配。它在轨道控制台中工作正常。

但是,当我运行应用程序,我得到了上述错误。

请帮忙。

+0

您错过了什么在您的视图中 – davidhu2000

+1

当您将id作为数字传递并将其作为字符串传递时,它在Rails控制台中工作正常吗?也许只是在你的ID上调用'to_i'就可以解决你的问题? – Raffael

+0

这并没有解决问题。现在我已经为这个问题增加了更多的清晰度。 –

当您从DynamoDB中得到该错误时,这是​​因为您提供的密钥与表中的密钥类型不匹配。您的表中有一个键被定义为一个字符串,并且您正在传入一个数字;反之亦然 - 表格的关键是一个数字,并且您将它作为一个字符串传递。