2010-10-11 63 views
6

检索我有一个多态关联关系发生的事情,当我通过它检索的记录,如记录时:未定义的方法`update_attribute” ActiveRecord的::关联呼吁通过继承

hour = my_model.find(keeper_id).hours.where("day = ?", day_index) 

然后尝试调用上的update_attributes它:

hour.update_attribute(:start_time, start_time) 

我得到一个错误:

NoMethodError (undefined method `update_attribute' for #<ActiveRecord::Relation:0x0000010458c708>): 
    activerecord (3.0.0) lib/active_record/relation.rb:373:in `method_missing' 

我认为这是因为我通过关系检索了记录。 我该如何解决这个问题?

回答

17

更新属性适用于单个记录,不适用于集合。 改为使用update_all(语法有点不同)。

+7

您还可以添加一个“.first”,将集合转换为单个记录 – 0x4a6f4672 2011-07-05 16:41:22