是否有可能:
before_filter :authenticate_user! || :authenticate_admin!
答案 0 :(得分:6)
before_filter :do_authentication
def do_authentication
authenticate_user! || authenticate_admin!
end
答案 1 :(得分:5)
before_filter {authenticate_user! || authenticate_admin!}
将proc传递给before_filter方法,将与您在问题中提供的内容最接近。
答案 2 :(得分:-2)
由于:authenticate_user!
是一个符号,:foo == true
有效。因此,您的示例将始终等同于before_filter :authenticate_user!
尝试类似的东西(不确定你的设置......):
if method_defined?(:authenticate_user!)
before_filter :authenticate_user!
else
before_filter :authenticate_admin!
end
如果您定义了两个方法并希望运行authenticate_user!
,那么如果返回false,则运行authenticate_admin!
,只需创建一个authenticate!
方法来检查使用/ admin并运行before_filter
{1}}。