0

ページのリロードごとにメソッドを呼び出す方法は? アクションの実行に複数のコントローラーが使用されているため、ApplicationController で before_filter を定義できませんでした

4

1 に答える 1

2

1 つのアクションで複数のコントローラーが使用されていると言うとき、より具体的に言えますか? 通常、アクションを担当するコントローラの before_filter で十分です。

before フィルターが複数のコントローラーの特定のメソッドに影響を与えるようにする場合は、メソッド自体を 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
于 2013-05-21T08:23:23.250 に答える