3

我的 Rails 应用程序中有几个控制器(UserController、PostController、SessionController 等...)

在所有每个动作之前,我想使用gon gem 传递一个 json 对象。

我已将这行代码添加到我的应用程序助手中:

module ApplicationHelper

   ...

  def adding_gon
      gon.signed_in = signed_in?      
  end
end

我还添加了可供所有控制器使用的 ApplicationHelper:

class ApplicationController < ActionController::Base
  include ApplicationHelper
end

问题是现在我需要去每个控制器并编写这行代码:

before_filter :adding_gon

将这行代码写入每个控制器是相当重复的。

有没有办法让这个方法在所有动作之前执行?

4

1 回答 1

4

由于控制器通常继承自ApplicationController,因此您不必将 添加before_filter到每个控制器。只需在您ApplicationController的类定义中添加该行,过滤器就会在您所有子控制器的操作之前执行,除非您是从其他控制器继承的。

于 2012-08-28T21:32:31.760 回答