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 に答える