Rails:如何使用before_filter来保护多个方法

时间:2012-06-14 00:40:25

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

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

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

我的控制器有以下方法:索引,新建,编辑,创建,更新,显示,销毁。 我想要做的是使用login_required(代码中的:require_login)保护方法: new,edit,destroy,但是上面的代码不起作用,如果我有,我可以保护一种方法,例如:

before_filter :require_login, :only => :new

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

3 个答案:

答案 0 :(得分:3)

您在only选项的值附近缺少方括号:

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

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

答案 1 :(得分:0)

使用数组:

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

答案 2 :(得分:0)

哦,我是个傻瓜!这只是把它们放在数组形式的问题 - 像这样:

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

抱歉这个显而易见的问题。