Techioz Blog

Trailblazer: 私の操作が失敗した原因はどのステップですか?

概要

次のような操作を考えると、

class MyOperation < Trailblazer::Operation
  step :do_a!
  step :do_b!

  def do_a(options, **)
    false
  end

  def do_b(options, **)
    true
  end
end

run(MyOperation) の結果、操作のどのステップが失敗したかを確認するにはどうすればよいですか?

結果オブジェクトにデフォルトでこの情報が含まれていない場合、それを追加する良い方法は何でしょうか?

解決策

現在、操作固有のデバッグ ユーティリティを提供するこの gem があります - https://github.com/trailblazer/trailblazer-developer

これにより、どのステップで例外が発生したか、またはどのステップでトラックが成功から失敗に変化したかを正確に確認できます。

Trailblazer::Developer.wtf?(MyOperation, options)

STDOUT/Logger にステップのトレースを出力します。