RoR (2.3) Отслеживание изменений детей в переменной - PullRequest
0 голосов
/ 23 марта 2012

Моя первоначальная проблема заключается в том, что у меня есть классы, связанные друг с другом (own_to ..), и мне нужен один класс для отправки электронного письма, как только его дочерние элементы и / или сама меняются.Так как есть некоторые проблемы с детьми в обычном Rails способе использования «изменен?»моя идея заключалась в следующем: я использую некоторую переменную (глобальную? сессию?), где я храню изменения дочерних элементов after_update и читаю эту переменную в родительском after_update, например:

class House < ActiveRecord::Base

  has_one :door

  after_update :send_email

  def send_email

    all_changes = magically_available_variable[id]
    sendmail(all_changes)

  end

end

class Door < ActiveRecord::Base

  belongs_to :house

  after_update :store_changes

  def store_changes

    magically_available_variable[house.id][door_changes] = self.changes

  end

end

Итак, мой вопрос,где я должен хранить такую ​​переменную?Переменные сеанса недоступны в модели и не должны использоваться там.Я не уверен, будет ли она работать как глобальная переменная, потому что у каждого клиента должна быть своя собственная "magically_available_variable", и я думаю, что это тоже не будет хорошей практикой.Так, где еще я мог бы хранить такую ​​переменную, чтобы она была доступна в моделях и сохранялась после "after_update" детьми?

Спасибо за вашу помощь!

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