Rails: как выполнять обратные вызовы для модели, которая не обновлена, но связана с обновленной моделью - PullRequest
0 голосов
/ 29 апреля 2010

до KIS У меня есть две модели: Reservations и Containers.

 Container 
 has_many :reservations

 Reservation
 belongs_to :container

Когда я обновляю резервирование, я также хочу выполнить обратные вызовы для соответствующего контейнера.

Каков хороший способ сделать это?

Должен ли я использовать вложенные маршруты отдыха, поместить логику контейнера в модель резервирования или что-то еще

1 Ответ

1 голос
/ 29 апреля 2010

Rails имеет опцию под названием touch.

class Reservation < ActiveRecord::Base
  belongs_to :container, :touch => true
end

Rails обновляет поле updated_at объекта Container при изменении объекта Reservation. Если у вас есть какие-либо обратные вызовы в классе Container, они будут вызваны при изменении объекта Reservation.

class Container < ActiveRecord::Base
  has_many :reservations
  after_update :reservation_change

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