0

听起来很简单,对吧?我在 ApplicationController 中有这个方法:

def authenticate_admin
  redirect_to :root_path unless current_user.admin?
end

它在其他各种控制器中被调用,如下所示:

before_filter authenticate_admin

但是我收到一个错误,即应用该过滤器的方法中的任何实例变量都返回 nil:

<% @expressions.each do |expression| %>

有什么想法吗?这对我来说似乎很奇怪。

4

1 回答 1

1

您是否将符号传递给过滤器?你需要给它一个符号。从外观上看,您正在向它传递一个不存在的变量名。

before_filter :authenticate_admin # correct usage

您的示例显示了这一点:

before_filter authenticate_admin # incorrect

注意缺少的冒号。

于 2013-07-16T02:41:53.450 回答