我的控制器中有这个代码:
raise PermissionDenied
执行此操作时,我想显示用HAML编写的自定义错误页面,而不是默认的NameError
页面。
任何人都可以帮助我吗?感谢。
答案 0 :(得分:2)
rescue_from
方法可用于全局异常处理。
更改app/controller/application_controller.rb
文件以添加例外处理程序。
class ApplicationController < ActionController::Base
rescue_from ::PermissionDenied, :with => :render_permission_denied
def render_permission_denied(e)
@error = e # Optional, accessible in the error template
log_error(e) # Optional
render :template => 'error_pages/permission_denied', :status => :forbidden
end
end
现在在permission_denied.html.haml
目录中添加一个名为app/views/error_pages
的haml文件。
%h1 Permission Denied!
%p #{@error.message}
有关详细信息,请参阅导轨documentation。