我在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
在经理编辑页面上,如果我只编辑经理详细信息而不是员工详细信息,则不会触发员工模型上的after_save回调,这是有意义的。但有没有办法可以强制触发员工模型的回调,即使员工的详细信息没有改变?
答案 0 :(得分:0)
如何在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