Ruby on rails Rails:每页做一次重新加载

Ruby on rails Rails:每页做一次重新加载,ruby-on-rails,Ruby On Rails,如何在每页重新加载时调用一次方法?在ApplicationController中定义before_筛选器失败,因为有多个控制器用于执行操作当您说在一个操作中使用多个控制器时,您能更具体一点吗?通常,负责操作的控制器中的前置过滤器就足够了 如果希望before筛选器影响多个控制器中的特定方法,请将该方法本身放置在ApplicationController中,但将before_筛选器放置在包含该操作的每个控制器中 class ApplicationController def foo @

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

当您说在一个操作中使用多个控制器时,您能更具体一点吗?通常,负责操作的控制器中的前置过滤器就足够了

如果希望before筛选器影响多个控制器中的特定方法,请将该方法本身放置在ApplicationController中,但将before_筛选器放置在包含该操作的每个控制器中

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

i、 我有一个页面控制器和评论控制器。。。PageController通过AJAX正常加载和CommentController加载,并在每个页面下方呈现注释。这就是为什么它们都在ApplicationController的\u过滤器之前运行,并在\u过滤器之前调用。我错了吗?使用上面建议的before_过滤器,将它们限制为PageController中的重要操作,更像是手术刀与大锤的方法。添加了第三个没有过滤器的控制器示例。如果要避免运行before_过滤器,只针对xhr调用(而不是回答中所述的特定操作),可以按此处所述操作