Ruby on rails Rails中特定操作的自定义错误页

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之一的情况下将其重定向到错误页面内容的不同版本(仅限非完整页面标记) 这样行

我有一个控制器MyController,他的一些操作不能返回完整的HTML页面,而只能返回没有HTML/HEAD/BODY…标记的内容

默认错误页面是500.html等。实际上是完整的html页面,对于这些MyController:actions,我需要以某种方式以非完整页面格式获取错误页面

一种方法是:

覆盖MyController中的render_可选_error_文件,并在操作是my special actions之一的情况下将其重定向到错误页面内容的不同版本(仅限非完整页面标记)

这样行吗?还有别的出路吗

顺便说一句:我正在使用rails 2.3.9

谢谢,
Erez

这是一个有点困难的问题,尤其是在500错误的情况下。由于500将在应用程序遇到错误时呈现,因此您不能/不应该拥有由控制器处理的动态页面,因为该控制器可能是问题的根源

但是,对于404,您可以使用404操作设置ErrorsController,并根据请求是否为XHR请求使用不同的布局

然后,您只需要在ApplicationController中使用一个方法,如:

这将允许您随时调用自定义错误处理程序

在适当的情况下,您可以进一步扩展它,以添加对500错误的支持,但请记住,如果出现更大的问题,您将始终需要在公用文件夹中使用static 500.html

def render_404
  render "errors/404", :status => 404
end