0
我有兩個模型(讓我們打電話然後A
和B
)。Rails before_update嵌套屬性回調
A
has_many
b
s和B
belongs_to
A
。
class A < ApplicationRecord
has_many :bs, dependent: :destroy, inverse_of: :a
accepts_nested_attributes_for :bs, reject_if: :all_blank, allow_destroy: true
validates_associated :bs
end
class B < ApplicationRecord
belongs_to :a, inverse_of: :bs
before_update :do_something, unless: Proc.new { |b| b.a.some_enum_value? if a }
def do_something
self.some_field = nil
end
end
除此之外,B
有before_update
回調,設置some_field
爲零如果A
有some_enum_value
集。
由於這關係被一個嵌套形式上使用,即從before_update
如果B
我更新屬性形式B
纔會被調用。如果我只更改A
的值表示回調未被調用。
當A
更新時,我怎麼能撥打B
的before_update
?
在此先感謝。
:
但是,您可以滾你自己。寫操作很昂貴,通常你可以通過代理或使用連接來解決這個問題。 – max
非常感謝,馬克斯。 – ThalesMiguel