如何在搜索错误时跟踪rails应用程序中的redirect_to

时间:2013-03-07 14:41:04

标签: ruby-on-rails

在调试问题时,当你拥有大量的gem和before_filters时,很难在rails应用程序中跟踪redirect_to。那么有没有一种方法可以更快地追踪它们?可用的任何方法或铁路助手?

2 个答案:

答案 0 :(得分:30)

在应用程序控制器中添加以下方法

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

这节省了我的一天,所以想在这里分享,希望你觉得它很有用:)

答案 1 :(得分:0)

调试器宝石怎么样?

然后您可以在代码中的任何位置插入debugger,执行将停在那里,您可以按流程n或通过键入irb

获得完整的控制