如何在每页重新加载时调用一次方法?在ApplicationController中定义before_filter失败,因为有多个控制器用于执行操作
答案 0 :(得分:2)
当你说一个动作中使用了多个控制器时,你会更具体吗?通常情况下,负责该操作的控制器中的before_filter就足够了。
如果您希望您的前置过滤器影响多个控制器中的特定方法,则将方法本身放在ApplicationController中,但将每个控制器中的before_filter放在其中。
class ApplicationController
def foo
@bar = 'bar'
end
end
class UserController
before_filter :foo, :only => [:method1]
def method1
...
end
def method2
...
end
end
class StuffController
before_filter :foo, :only => [:method2]
def method1
...
end
def method2
...
end
end
class UnimportantController
# No before filter, neither of these methods will call :foo
def method1
...
end
def method2
...
end
end