Ruby on rails 告诉我如何使用ActiveRecordafeter\u add
现在我有一个问题,我如何才能使callback在添加后通过关联接收对has\u many:中连接模型的引用? 我的代码如下:Ruby on rails 告诉我如何使用ActiveRecordafeter\u add,ruby-on-rails,ruby,act,Ruby On Rails,Ruby,Act,现在我有一个问题,我如何才能使callback在添加后通过关联接收对has\u many:中连接模型的引用? 我的代码如下: class Emergency has_many :departments, :through => :eme_references, :after_add => Proc.new { |eme_reference| eme_reference.eme_flag = 1} end 属性eme_标志是模型emreference的属性!但是在
class Emergency
has_many :departments, :through => :eme_references, :after_add => Proc.new { |eme_reference| eme_reference.eme_flag = 1}
end
属性eme_标志是模型emreference的属性!但是在这个街区,我得到了eme_的参考资料。课程是紧急的。
我想设置模型emreference的属性eme_标志。
这是我的问题!
干杯 我认为你想做的事在那里做不到 你可以在部门上创建一个“创建后”挂钩我假设紧急事件有很多eme参考有很多部门:
class Emergency
has_many :departments, :through => :eme_references
def flag!
eme_flag=1
save
end
end
class Department
after_create :check_emergency
# this allows you to call department.emergency. Will return nil if anything is nil
delegate :emergency, :to =>:eme_reference, :allow_nil => true
def check_emergency
self.emergency.flag! if self.emergency.present?
end
end
大概紧急情况也有很多:eme参考,以便:通过协会工作
在这种情况下,您应该能够将回调附加到那里:
has_many :eme_references,
:after_add => Proc.new { |emergency, eme_ref| # code here }
该块接受两个参数,第一个是紧急参数,第二个是添加的紧急参数
在这个例子中,也许在EmeReference上的before_save回调也可以执行您想要的操作