1

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

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

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

before_filter :require_login, :only => :new

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

4

3 回答 3

3

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

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

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

于 2012-06-14T00:42:53.340 回答
0

使用数组:

before_filter :require_login, :only => [:new, :edit, :destroy]
于 2012-06-14T00:42:16.290 回答
0

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

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

很抱歉这个明显的问题。

于 2012-06-14T00:44:52.490 回答