我在Rails 5中使用activeadmin我有以下的联系。
class Manager < ApplicationRecord
has_many :employees
accepts_nested_attributes_for :employees, :allow_destroy => true
end
class Employee < ApplicationRecord
belongs_to :manager
after_save :do_something
end
我的表格是这样的:
tabs do
tab 'Details' do
f.inputs do
input :name
input :current_address
input :email_address
end
end
tab 'Employees' do
f.has_many :employees, heading: false, allow_destroy: true do |employee|
input :name
input :experience
input :email_address
end
end
end
在“经理编辑”页面上,如果我只编辑经理详细信息而不是员工详细信息,则不会触发员工模型上的“保存后”回调,这是有意义的但是,有没有一种方法可以强制在雇员模型上触发回调,即使雇员的详细信息没有更改?
最佳答案
在Manager模型中有一个after_save方法,它将在Employee模型中触发回调,如何?
class Manager < ApplicationRecord
has_many :employees
accepts_nested_attributes_for :employees, :allow_destroy => true
after_save :update_employees
def update_employees
employees.each {|m| m.update_attributes()}
end
end
关于ruby-on-rails - ActiveAdmin关联未更改时如何触发关联模型的回调,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43335961/