我有两个模型,一个Logo可以有很多订单。
Class Logo
has_many :orders, inverse_of: :logo
Class Order
belongs_to :logo, -> {includes :simulations}, autosave: true, inverse_of: :orders
徽标有before_update
回调,据我所知,Rails只会在徽标实例#update上触发。问题是在Order#中创建我的回调被触发。有什么想法吗?
答案 0 :(得分:3)
创建Order
时,流程如下:
Order
记录,设置适当的属性。Order
记录保留在数据库中。autosave
挂钩触发,在关联的相对记录上调用save
,在这种情况下,Logo
表示Order
所属。Logo
会导致before_update
回调执行。如果您不希望发生这种情况,可以将关联中的autosave: true
移至:logo
上的Order
。但是,如果Logo
的其他属性在创建Order
时必须更改,则需要在Order
中的其他代码/回调中考虑该属性。