Ruby 1.8を使用するアプリケーションがあります。 Rails 2.2.2アプリでは6です。メソッド呼び出しを処理するメソッドを取得する方法
コードベースのさまざまな部分(クラス、モジュールなど)に多くのメソッドurl_for
があります。
デバッグ時に、どのメソッドがurl_for
への特定の呼び出しを処理するかをログで確認したいと思います。例えば、
foo = "bar"
baz = url_for(foo)
#would like to log the location of the url_for method which actually
#handled the call, here.
これを行うための唯一の方法はurl_for
内で例外を発生し、スタックトレースを見ているならばそれは結構です、例えば
baz = url_for(something_which_wont_raise_here_but_will_raise_inside_the_url_for_method)
方法がされているものならば、先に進むために(重くパッチを適用)クラスのインスタンスで呼び出さ:
foo = @baz.bar("qux")
編集:私はそれは私の質問でのRuby 1.8.6であったことを指定していない、と私は.source_location
を使用することはできませんように見えます方法。以前のバージョンを指定しなかったのは大変申し訳ありません!誰にも他のアイデアはありますか?
明確ではありません。メソッドが定義されている場所(つまり、どのメソッドが呼び出されているか)、またはそのメソッドがどこに呼び出されているのかを知りたいですか? – sawa
このメソッドは、 "メソッドが定義されている場所(つまり、どのメソッドが呼び出されているか)" –
このバージョンのRubyは長い間維持されておらず、未修正のバグセキュリティホールに限られています。 –