9

問題をデバッグしている間、多くの gem と before_filters がある場合、Rails アプリケーションで redirect_to をトレースするのは困難です。それで、それらをより速く追跡できる方法はありますか?そのために利用できるメソッドまたはレールヘルパーはありますか?

4

2 に答える 2

37

アプリケーションコントローラーに以下のメソッドを追加します

def redirect_to(options = {}, response_status = {})
  ::Rails.logger.error("Redirected by #{caller(1).first rescue "unknown"}")
  super(options, response_status)
end

そして、ログファイルで「redirect_to」呼び出しを呼び出したファイル、メソッド名を確認できます(ログに記録されます)

例えば:

Started GET "http://server.com/really_important_page" for 127.0.0.1
Processing by HomeController#really_important_page as HTML
Redirected by app/controllers/application_controller.rb:53:in `ensure_random_bugs'
Redirected to https://server.com/not_the_page_you_wanted
Completed 302 Found in 1ms

これは私の一日を救ったので、ここで共有したいと思いました。お役に立てば幸いです:)

于 2013-03-07T14:41:03.997 に答える
0

デバッガーgemはどうですか?

次にdebugger、コードの任意の場所に挿入すると、実行がそこで停止します。フローを押すnか、次のように入力して完全なコンソールを取得できます。irb

于 2013-03-07T15:37:43.280 に答える