Ruby on rails在多个视图中呈现文件

时间:2015-08-16 22:47:32

标签: ruby-on-rails ruby ruby-on-rails-4

如果用户无权访问某个页面,我想返回相同的通用无效页面。我想从几个不同的视图中使用这个无效页面。

如何在不在每个视图中创建此页面的情况下渲染此页面?

是的,我可以创建一些其他控制器并重定向到这些页面,但我希望浏览器中的URL与该人尝试访问的页面相同。我想渲染页面不重定向。

1 个答案:

答案 0 :(得分:1)

您要创建一个静态页面,我们将其调用invalid.html.erb并将其放在您的static_pages目录中(或者您为应用维护静态页面)。确保在routes.rb中为其创建路线:

get 'static_pages/invalid' => 'static_pages#invalid'

然后,在您的application_controller.rb文件中,您将使用rescue_from帮助程序调用自定义方法来处理错误:

rescue_from User::NotAuthorized, :with => :invalid

def invalid
  redirect_to 'static_pages_invalid_path'
end

几乎就是这样。阅读更多Ruby Guides