Проверьте, изменилось ли одно отношение в Rails - PullRequest
2 голосов
/ 23 октября 2010

Возможно ли иметь обратный вызов 'before_save', который определяет, изменилось ли отношение 'has_one' (отношение не модель в конце отношения)?Например, что-то, что будет действовать так:

@person.picture = @picture
@person.picture_changed? # true
@person.save
@person.picture_changed? # false

Ответы [ 2 ]

1 голос
/ 03 января 2012

Может быть, это работает с

@person.picture_id_changed?

0 голосов
/ 23 октября 2010

Попробуйте relation.changed? ... Вы также можете посмотреть на наблюдателей, в зависимости от того, что вы пытаетесь выполнить.

Пример:

class Model < ActiveRecord::Base
  has_one :relation
  before_save :check_relation_changed
  private def check_relation_changed
    do_something if relation.changed?
  end
end

Ссылка: http://ryandaigle.com/articles/2008/3/31/what-s-new-in-edge-rails-dirty-objects

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