【问题标题】:Ruby on rails render file in multiple views [duplicate]Ruby on rails 在多个视图中渲染文件[重复]
【发布时间】:2015-11-09 12:24:05
【问题描述】:

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

如何在不在每个视图中创建它们的情况下呈现此页面?

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

【问题讨论】:

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


    【解决方案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 阅读更多内容。

    【讨论】:

      猜你喜欢
      • 2011-08-02
      • 1970-01-01
      • 2011-01-18
      • 2019-07-13
      • 1970-01-01
      • 2017-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多