web-dev-qa-db-ja.com

Rails 3コントローラからヘルパーメソッドを呼び出す

コントローラからヘルパーメソッドを呼び出すことは可能ですか?はいの場合、Rails 3?

29
Achaius
 view_context.some_helper_method
36
Alexey

ヘルパーモジュールをコントローラーに含めるか、ヘルパーをコントローラーメソッドとして定義し、helper_method :method_nameを介してヘルパーとしてマークすることができます。

class FooHelper
  def bar ... end
end

class QuxsController
  include FooHelper
end

または

class QuxsController
  private
  def bar ... end
  helper_method :bar
end
28
clyfe

これは、他のコントローラでApplicationHelperメソッドを使用する場合、またはビューがこのinclude ApplicationHelperを追加する場合に機能します。これは、すべてのコントローラがApplicationControllerから派生しているためです。

class ApplicationController < ActionController::Base
  protect_from_forgery       
  include ApplicationHelper  
end
1
Nikhil Thombare