Ruby on rails 显示Rails错误页面而不是模糊的Heroku错误页面的方法

Ruby on rails 显示Rails错误页面而不是模糊的Heroku错误页面的方法,ruby-on-rails,heroku,Ruby On Rails,Heroku,在localhost上开发rails应用程序时,每当出现错误时,您都可以在出现的rails页面上详细查看错误。但是,在Heroku上,出现错误时唯一出现的是“我们很抱歉,但出了问题。”没有任何信息。我看过日志,但这似乎没有帮助。有没有办法用详细的Rails错误页面替换通用的Heroku错误页面?在Rails应用程序的config/environments/production.rb下,尝试更改 config.consumere\u all\u requests\u local=false 到 c

在localhost上开发rails应用程序时,每当出现错误时,您都可以在出现的rails页面上详细查看错误。但是,在Heroku上,出现错误时唯一出现的是“我们很抱歉,但出了问题。”没有任何信息。我看过日志,但这似乎没有帮助。有没有办法用详细的Rails错误页面替换通用的Heroku错误页面?

在Rails应用程序的
config/environments/production.rb
下,尝试更改

config.consumere\u all\u requests\u local=false

config.design\u all\u requests\u local=true


注意:当您希望看到正常的rails错误消息时,您可能需要设置一个新环境并将其部署到Heroku。可能是
staging
testing
之类的东西,因为您不希望用户在实时站点上看到这些类型的错误。

这可以让您继续

routes.rb

那么

class ExceptionsController < ApplicationController

  def some_error
      @exception = env["action_dispatch.exception"]
      @status_code = ActionDispatch::ExceptionWrapper.new(env, @exception).status_code
  end

end
类例外控制器

最后,为了显示某种异常,您将修复一个视图页面。

这不是一个特定于heroku的问题,而是一个生产环境问题。在任何生产设置中,都可以通过在
config/environments/production.rb

config.consider_all_requests_local = false

请注意,一个更好的方法是继续显示生产样式错误,而不是使用以下命令跟踪日志文件,这样用户就看不到该错误:

heroku logs --app <yourappname> --tail
或者,您可以使用环境变量重置日志级别,这样您就可以删除它并重新启动,而不是使用以下选项重新部署:

heroku config:add LOG_LEVEL=DEBUG --app <yourappname>
heroku config:addlog\u LEVEL=DEBUG--app
我感觉到了你的痛苦。请尝试运行heroku run rails console查看更清晰的错误。希望有帮助

heroku logs --app <yourappname> --tail
config.log_level = :info
heroku config:add LOG_LEVEL=DEBUG --app <yourappname>