2012-06-19 4 views
0

следующего кодне определен метод по ActiveRecord :: Отношение объект

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 объекта, то, что это правильный способ управления это

+0

вы можете 'update_attributes' только для точного объекта AR, или вы должны использовать' update_all' – fl00r

ответ

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) 
+0

да Администратор :: FieldValue.where (: item_id = > @ admin_item.id,: field_id => ключ) должно возвращать только одно значение – denisjacquemin

+0

@denisjacquemin, ok :) – fl00r

+0

ok Я пропустил .first thx !!! (больше объяснений можно найти на http://m.onkey.org/active-record-query-interface) – denisjacquemin