Ruby on rails Rails中特定操作的自定义错误页
我有一个控制器MyController,他的一些操作不能返回完整的HTML页面,而只能返回没有HTML/HEAD/BODY…标记的内容 默认错误页面是500.html等。实际上是完整的html页面,对于这些MyController:actions,我需要以某种方式以非完整页面格式获取错误页面 一种方法是: 覆盖MyController中的render_可选_error_文件,并在操作是my special actions之一的情况下将其重定向到错误页面内容的不同版本(仅限非完整页面标记) 这样行吗?还有别的出路吗 顺便说一句:我正在使用rails 2.3.9 谢谢,Ruby on rails Rails中特定操作的自定义错误页,ruby-on-rails,Ruby On Rails,我有一个控制器MyController,他的一些操作不能返回完整的HTML页面,而只能返回没有HTML/HEAD/BODY…标记的内容 默认错误页面是500.html等。实际上是完整的html页面,对于这些MyController:actions,我需要以某种方式以非完整页面格式获取错误页面 一种方法是: 覆盖MyController中的render_可选_error_文件,并在操作是my special actions之一的情况下将其重定向到错误页面内容的不同版本(仅限非完整页面标记) 这样行
Erez这是一个有点困难的问题,尤其是在500错误的情况下。由于500将在应用程序遇到错误时呈现,因此您不能/不应该拥有由控制器处理的动态页面,因为该控制器可能是问题的根源 但是,对于404,您可以使用404操作设置ErrorsController,并根据请求是否为XHR请求使用不同的布局 然后,您只需要在ApplicationController中使用一个方法,如: 这将允许您随时调用自定义错误处理程序 在适当的情况下,您可以进一步扩展它,以添加对500错误的支持,但请记住,如果出现更大的问题,您将始终需要在公用文件夹中使用static 500.html
def render_404
render "errors/404", :status => 404
end