【发布时间】:2013-10-30 19:32:12
【问题描述】:
我有一个名为 Animal 的 ActiveRecord 模型。 Animal 有 id 和 client_id。 在我的应用程序中有一个名为@selectedanimals 的数组,其中包含我要更新的动物的ID,例如:@selectedanimals:[“6”,“14”,“5”]。 我有这些动物的新 client_id 的值,例如 @newclient.id,我想用新的 client_id 更新所有这些动物记录。 我现在拥有的是:
Animal.update_all({:client_id => @transferclient.id}, {:id => @selecteanimals})
我知道这不是 100% 正确的,因为 :id 有问题。 我收到这样的错误: 为 nil 调用 id,它会错误地为 8 -- 如果你真的想要 nil 的 id,请使用 object_id
请原谅我的无知,但这是我第一次使用 update_all,我没有看到任何示例,其中您将要更新的记录的 id 数组传递给它,因此非常感谢任何帮助。
编辑: 显然@transferclient.id 没有正确定义。那是我的问题。 谢谢大家。
【问题讨论】:
-
您是尝试使用单个 client_id 还是多个 client_id 进行更新?
-
单个 client_id 和多个动物 - 但是,我发现代码的真正问题是 @transferclient.id 没有正确定义。
-
@Danpe 的回答有用吗?
-
它可能会起作用,但是一旦我正确定义了@transferclient.id,我在问题中列出的代码就可以正常工作。
标签: ruby-on-rails ruby arrays activerecord