ruby-on-rails – 在通过继承检索的记录上调用ActiveRecord :: Relation时未定义的方法`update_attribute’

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

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'

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

最佳答案
Update属性适用于单个记录,而不适用于集合.
请改用update_all(语法略有不同).

转载注明原文:ruby-on-rails – 在通过继承检索的记录上调用ActiveRecord :: Relation时未定义的方法`update_attribute’ - 代码日志