неопределенный метод update_attribute для ActiveRecord :: Relation при вызове записи, полученной с помощью наследования - PullRequest
6 голосов
/ 12 октября 2010

У меня возникают полиморфные связи, и когда я получаю через них запись, например:

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 Ответ

17 голосов
/ 12 октября 2010

Обновление атрибута работает с одной записью, а не с коллекцией.Вместо этого используйте update_all (синтаксис немного другой).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...