Rails:如何在未更新的模型上执行回调,但与更新后的模型
问题描述:
有关KIS我有两种型号:Reservations
和Containers
。Rails:如何在未更新的模型上执行回调,但与更新后的模型
Container
has_many :reservations
Reservation
belongs_to :container
当我更新预订时,我也想对各个容器执行回调。
这样做的好方法是什么?
我应该使用嵌套休息路线,把容器逻辑在预订模式,还是其他什么东西
答
Rails有所谓touch
的选项。
class Reservation < ActiveRecord::Base
belongs_to :container, :touch => true
end
Rails的更新Container
对象时永远Reservation
对象更改的updated_at
领域。如果您在Container
课程中有任何回调,当Reservation
对象发生更改时,将会调用它们。
class Container < ActiveRecord::Base
has_many :reservations
after_update :reservation_change
def reservation_change
# handle the updates..
end
end
感谢您的回答 – s84 2010-04-29 08:11:42
请注意,touch不再调用Rails 3中的验证或回调。 – ChrisInEdmonton 2012-09-11 20:22:58