ActiveRecord :: Relation对象上的未定义方法

时间:2012-06-19 19:13:12

标签: ruby-on-rails activerecord arel

以下代码

fieldvalue = Admin::FieldValue.where(:item_id => @admin_item.id, :field_id => key)
fieldvalue.update_attributes(:value => value)

引发以下错误

NoMethodError (undefined method `update_attributes' for #<ActiveRecord::Relation:0x00000102dfc868>):

为什么它是Relation对象而不是FieldValue对象,管理此对象的正确方法是什么

1 个答案:

答案 0 :(得分:1)

fieldvalue应该只返回一个值吗?

fieldvalue = Admin::FieldValue.where(:item_id => @admin_item.id, :field_id => key).first
fieldvalue.update_attributes(:value => value)

或者,如果您需要多个项目:

fieldvalue = Admin::FieldValue.where(:item_id => @admin_item.id, :field_id => key)
fieldvalue.update_all(:value => value)