在HomePage控制器上何处发送救援?

时间:2014-02-21 18:53:25

标签: ruby-on-rails ruby ruby-on-rails-3

我有一个主页和一个名为StaticPagescontroller的控制器。

我使用了救援(如下所示),但页面上的错误显示这是一个坏主意,或者至少我是以错误的方式做到这一点。 主页上的任何问题触发了指向作为主页的root_page的救援,给了我一个阻止一切的无限循环,这是一个坏主意!

最佳做法是什么?

我应该如何处理主页上的rescue

我应该指向404页面吗?还有其他什么?

class StaticPagesController < ApplicationController

  def home
    @deals = Deal.featured.to_a 

    rescue  
    redirect_to authenticated_root_path
  end

1 个答案:

答案 0 :(得分:0)

发生错误时,我想先记录错误,然后重定向到404页面。

我就是这样做的。

class StaticPagesController < ApplicationController
  def home
    @deals = Deal.featured.to_a 
    rescue => error
    handle_error(error)  
  end
end

现在我的ApplicationController看起来像这样

class ApplicationController < ActionController::Base
  def handle_error(error)  
    Error.create(error)
    format.html { render :file => "#{Rails.root}/public/404", :layout => false, :status => :not_found }
  end
end

一件好事要知道公共目录中的文件在rails服务器启动之前呈现,因此它们仍然可以呈现。

我希望这有助于