私はInvoice
モデルを持っていhas_many :line_items
ます。
どちらのモデルにもbefore_validation
コールバックがあります。請求書のコールバックでは、品目のコールバックが最初に実行されている必要があります。ただし、デフォルトでは請求書のコールバックが実行され、次に各明細のコールバックが実行されます。
最初に品目が検証され、次に請求書が検証されるようにする良い方法はありますか?
現時点では、次のようなものをいじっています。
class Invoice < ActiveRecord::Base
before_validation :do_something
...
private
def do_something
line_items.each { |line_item| line_item.run_callbacks(:validation) }
# Then do whatever I need here - I've forced the callback order
end
end
これを処理するより良い方法はありますか?