在通过继承检索的记录上调用时,ActiveRecord :: Relation的未定义方法`update_attribute'

时间:2010-10-11 22:00:38

标签: ruby-on-rails inheritance

我发生了多态关联关系,当我通过它检索记录时,例如:

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'

我认为这是因为我通过关系检索了记录。 我怎么能绕过这个?

1 个答案:

答案 0 :(得分:17)

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