我的foo
控制器定义如下:
class FooController < ApplicationController
before_filter :authenticate, :only => :some_action
def show
send(some_action)
end
def some_action
end
private
def authenticate
# redirect user if not authenticated
end
end
鉴于我没有登录,当我直接导航到some_action
操作时,我被重定向到首页。然而,当我导航到演出动作时,我不是。
当我通过send
调用操作时,before_filter不会运行。
目前,我的解决方法是直接从我的authenticate
操作中致电some_action
。
有关为什么不通过send
调用before_filter以及如何修复它的任何想法?这是通过控制器调用send
的预期行为吗?
谢谢!
答案 0 :(得分:2)
send
是一种红宝石元编程方法。你应该只在特殊情况下使用它,而不是一直使用它。
答案 1 :(得分:1)
这个怎么样?
class FooController < ApplicationController
before_filter :authenticate, :only => [:show, :some_action]
def show
...
end
def some_action
...
end
end