Rails:每页重新加载一次

时间:2013-05-21 08:18:03

标签: ruby-on-rails

如何在每页重新加载时调用一次方法?在ApplicationController中定义before_filter失败,因为有多个控制器用于执行操作

1 个答案:

答案 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