0
私はOrderItemに、SaleOrderItem及び方法は、メソッドを保存した後、以下の場合Railsは動作しないafter_save(レール - 3.2.22.1)
so = SaleOrder.first
oi = so.order_items.first
oi.save << This is not calling after_save on order items
で呼び出されていないセーブ
class SaleOrderItem < OrderItem
self.table_name = "order_items"
end
class PurchaseOrderItem < OrderItem
self.table_name = "order_items"
end
class OrderItem < ActiveRecord::Base
after_save :update_order
def update_order
is_pending = ord.order_items.
where(state: [SaleOrderItem.on_orde, SaleOrderItem.carter]).count > 0
self.order.update_column(:any_pending_order_items, is_pending)
end
end
後PurchaseOrderItemモデルを持っています以下の場合に呼び出されます
oi2 = OrderItem.find(oi.id)
oi2.save << This calls after_save on order items
誰でもコメントがありますか?
あなたは、具体的after_saveコールバック宣言とメソッドが呼び出されて、あなたのモデルを表示することができます
これはafter_saveは、いくつかのケースで呼び出されていない修正されます、次のようにすべきですか?いくつかの基本的なトラブルシューティングでは、 'io.save! 'を大声で失敗させてください。 – user3366016
あなたは 'after_save'を呼び出さなかったのでしょうか? 'oi'と' oi2'は同じですか? – EJ2015
@ user3366016 質問に追加した情報を追加しました。解決策が見つかりました。細かいことをお詫びし、あなたが私を助けるために過ごした時間に感謝します。 –