Ruby on rails 4 机架::在生产Rails 4.0.4中启用了ShowExceptions

Ruby on rails 4 机架::在生产Rails 4.0.4中启用了ShowExceptions,ruby-on-rails-4,rack,rack-middleware,Ruby On Rails 4,Rack,Rack Middleware,遇到一个奇怪的问题,Rack::ShowExceptions正在生产环境中为我的rails 4.0.4应用程序呈现详细的异常。将config.middleware.delete(Rack::ShowExceptions)添加到config/application.rb仍然会导致呈现Rack::ShowExceptions,因此,我希望存在一些中间件依赖性 例如,在POST请求中使用未替换的%点击应用程序,将导致呈现Rack::ShowExceptions模板: 样本无效POST请求: POST

遇到一个奇怪的问题,
Rack::ShowExceptions
正在生产环境中为我的rails 4.0.4应用程序呈现详细的异常。将
config.middleware.delete(Rack::ShowExceptions)
添加到
config/application.rb
仍然会导致呈现
Rack::ShowExceptions
,因此,我希望存在一些中间件依赖性

例如,在
POST
请求中使用未替换的
%
点击应用程序,将导致呈现
Rack::ShowExceptions
模板:

样本无效
POST
请求:

POST /en/users/sign_in HTTP/1.1
Host: www.localhost.dev
Proxy-Connection: keep-alive
Content-Length: 1
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: http://www.localhost.dev
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip,deflate
Accept-Language: en-US,en;q=0.8

%
机架中间件:

$ RAILS_ENV=production rake middleware
use Raven::Rack
use HttpMethodNotAllowed
use ActionDispatch::SSL
use Rack::Sendfile
use ActionDispatch::Static
use #<ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x007feba5b8b940>
use Rack::Runtime
use Rack::MethodOverride
use ActionDispatch::RequestId
use RequestStore::Middleware
use Rails::Rack::Logger
use ActionDispatch::ShowExceptions
use ActionDispatch::DebugExceptions
use ActionDispatch::RemoteIp
use ActionDispatch::Callbacks
use ActiveRecord::ConnectionAdapters::ConnectionManagement
use ActiveRecord::QueryCache
use ActionDispatch::Cookies
use ActionDispatch::Session::CookieStore
use ActionDispatch::Flash
use ActionDispatch::ParamsParser
use Rack::Head
use Rack::ConditionalGet
use Rack::ETag
use Warden::Manager
run MyApplication::Application.routes
$RAILS\u ENV=生产rake中间件
使用Raven::Rack
不允许使用HTTPMethod
使用ActionDispatch::SSL
使用Rack::Sendfile
使用ActionDispatch::Static
使用#
使用Rack::Runtime
使用Rack::MethodOverride
使用ActionDispatch::RequestId
使用RequestStore::中间件
使用Rails::Rack::Logger
使用ActionDispatch::ShowExceptions
使用ActionDispatch::DebugExceptions
使用ActionDispatch::RemoteIp
使用ActionDispatch::回调
使用ActiveRecord::ConnectionAdapters::ConnectionManagement
使用ActiveRecord::QueryCache
使用ActionDispatch::Cookies
使用ActionDispatch::Session::CookieStore
使用ActionDispatch::Flash
使用ActionDispatch::ParamSpaser
使用Rack::Head
使用Rack::ConditionalGet
使用Rack::ETag
使用管理员::管理员
运行MyApplication::Application.routes
如果相关的话,我们在
config/application.rb
中有
config.exceptions\u add=self.routes


我已经仔细阅读了ActionPack变更日志,但是很有可能这个问题已经在以后的版本中修复了!如果是这样的话,我将非常感谢您的参考。

如果您的意思是您有
config.exceptions\u app=self.routes
,那么请不要这样做。您正在将异常状态推回到引发该异常状态的应用程序中,因此它可能不会执行您想要的操作。默认故障应用程序有什么问题?

确保已将RACK_ENV设置为production以及RAILS_ENV

如果未设置RACK_ENV,则默认为development,RACK本身会在Rails初始化之前加载RACK::ShowExceptions(以及其他一些开发中间件)