【问题标题】:Rails: How to use a before_filter to protect multiple methodsRails:如何使用 before_filter 来保护多个方法
【发布时间】:2012-06-14 08:44:52
【问题描述】:

所以,我在控制器中有这段代码:

before_filter :require_login, :only => :new, :edit, :destroy

我的控制器有这些方法:index、new、edit、create、update、show、destroy。 我想要做的是用 login_required (代码中的:require_login)保护方法:new,edit,destroy, 但是上面的代码不起作用,如果我有,我可以保护一种方法,例如:

before_filter :require_login, :only => :new

但我想保护他们三个,我该怎么做?

【问题讨论】:

    标签: ruby-on-rails ruby login before-filter


    【解决方案1】:

    only 选项的值周围缺少方括号:

     before_filter :require_login, :only => [:new, :edit, :destroy]
    

    它不起作用,因为 Ruby 解释器不知道 only 选项从哪里开始,before_filter 的参数继续。在这种情况下,您需要明确说明容器。

    【讨论】:

    • 感谢刚刚发现,在阅读您的答案之前,对不起。
    【解决方案2】:

    使用数组:

    before_filter :require_login, :only => [:new, :edit, :destroy]
    

    【讨论】:

      【解决方案3】:

      哦,我是个傻瓜!只需将它们以数组形式放置 -.- 就像这样:

      before_filter :require_login, :only => [:new, :edit, :destroy]
      

      很抱歉这个明显的问题。

      【讨论】:

        猜你喜欢
        • 2011-12-22
        • 1970-01-01
        • 2011-08-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多