Обновите метку времени полиморфной ассоциации в Rails - PullRequest
0 голосов
/ 11 сентября 2011

У меня есть модель Photo, которая может принадлежать двум другим моделям, и это фиксируется с помощью полиморфной ассоциации:

has_many :photos, :as => photo_container

Я хотел бы обновить временную метку моделей photo_container при создании новой фотографии. Я делаю это с обратным вызовом after_create в модели Photo:

self.photo_container.update_attribute(:updated_at, Time.now)

Поскольку обе мои модели photo_container имеют поле update_attribute, оно должно работать нормально, однако я получаю следующее исключение для соответствующей строки в обратном вызове:

NameError (uninitialized constant Photo::PhotoContainer)

Конечно, все работает нормально, если я проверяю тип photo_container, загружаю модель и меняю метку времени, но она не является чистой / универсальной. Есть идеи?

1 Ответ

3 голосов
/ 11 сентября 2011

Используйте сенсорную опцию в ассоциации Proper_to . Это должно работать нормально. Что-то вроде:

class Picture < ActiveRecord::Base
  belongs_to :imageable, :polymorphic => true, :touch=>true
end
...