如何在所有控制器操作之前显示方法

时间:2012-08-28 21:27:59

标签: ruby-on-rails controller helpers

我的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

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

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

1 个答案:

答案 0 :(得分:3)

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