9

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

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

调试器宝石呢?

然后您可以debugger在代码中的任何位置插入并且执行将在那里停止您可以按照流程按下n或通过键入获得完整的控制台irb

于 2013-03-07T15:37:43.280 回答