Rails 500错误重定向到RIA的空白页。

时间:2011-07-27 20:47:21

标签: ruby-on-rails ssl https nginx passenger

我正在 nginx 使用乘客。我有自定义的.ria格式。如果路由以.ria结尾,则页面使用javascript和ajax来增强用户体验。如果.ria不存在,则回退到不使用javascript。因此,当我收到错误时,后备显示自定义错误页面就好了,但是.ria显示空白页面。

对可能发生的事情或缺少的事情有任何想法?

提前致谢。

1 个答案:

答案 0 :(得分:0)

没关系。

问题在于Excpetion Notification插件。该插件为type.html格式呈现500.html页面,对于type.all呈现任何内容。

respond_to do |type|
  type.html { render :file => "#{RAILS_ROOT}/public/500.html", :status => "500 Error" }
  type.all  { render :nothing => true, :status => "500 Error" }
end

所以我使用以下

覆盖了ApplicationController中的方法
respond_to do |type|
  type.html { render :file => "#{RAILS_ROOT}/public/500.html", :status => "500 Error" }
  type.ria { render :file => "#{RAILS_ROOT}/public/500.html", :status => "500 Error" }
  type.all  { render :nothing => true, :status => "500 Error" }
end

现在一切正常:)