为什么我的Rails自定义错误页面忽略了自定义布局?

时间:2016-05-10 02:48:56

标签: ruby-on-rails ruby-on-rails-3 custom-error-pages

我的Rails 3.2应用程序中有自定义动态错误页面。

为了确保这些错误页面本身不会抛出错误,他们使用简化的应用程序布局,使用简化的布局除去其他内容,动态用户帐户信息(例如标题中的用户头像) application-limited.html.erb

 # config/application.rb
 config.exceptions_app = self.routes

 # routes.rb
 get '/404', to: 'errors#page_not_found', as: :page_not_found

 # errors_controller.rb
 class ErrorsController < ApplicationController
   def page_not_found
     render status: 404, layout: 'application-limited'
   end
 end

当我通过访问/404/500进行测试时,错误页面会使用有限的布局正确呈现。但是,当我通过访问不存在的页面/foobar进行测试时,我得到了正确的动态404错误页面,但奇怪的是呈现了正常的应用程序布局,而不是简化的application-limited布局。

我在这里缺少什么?

更新:

更多实验表明,虽然@BoraMa 建议从ErrorsController继承ActionController::Base,但确保在访问/404时从不使用默认布局,这不会延续到visting /foobarxyz并呈现自定义404错误页面。

显然有这个原因,但我还没有解决它??

0 个答案:

没有答案