メソッドを持つクラスと、saveエイリアシングを使用してそれを変更する3つのミックスインがあるとします。
module Callbacks
def save_with_callbacks
callback :before_save
save_without_callbacks
end
end
alias_method_chain :save, :callbacks
end
同様に、save_with_transactionとsave_with_timestampsがこの順序で混在しているため、 がMyModel#save呼び出さsave_with_timestampsれ、 が呼び出されsave_with_transaction、 が呼び出さsave_with_callbacksれ、 最終的に元の が呼び出されますsave。
ここで、トランザクションなしで保存したいとします。を呼び出すことはできますsave_without_transactionが、タイムスタンプを設定するコードは呼び出されません。
タイムスタンプとコールバックを使用してモデルを保存し、トランザクションを保存するにはどうすればよいですか?
ミックスインを並べ替えることができますが、私の質問は、特にトランザクションではなく、真ん中を省略することです。メソッドのチェーンの途中を省略するにはどうすればよいですか?
注 - 簡潔にするために RoR の alias_method_chain を使用しましたが、私の質問はルビー全般に適用されます