78

特定の (またはすべての) コントローラーが必要とする Ruby メソッドがいくつかあります。入れてみました/app/helpers/application_helper.rb。ビューで使用されるメソッドにそれを使用しました。しかし、コントローラーはこれらのメソッドを認識しません。それらを置くべき別の場所はありますか、またはそれらのヘルパーメソッドに別の方法でアクセスする必要がありますか?

最新の安定した Rails を使用します。

4

6 に答える 6

78

内でメソッドを定義する必要がありますApplicationController

于 2012-11-28T19:54:38.653 に答える
30

アプリケーションコントローラー内でメソッドを定義する必要があります。メソッドがほとんどない場合は、次のようにすることができます

class ApplicationController < ActionController::Base    
  helper_method :first_method
  helper_method :second_method

  def first_method
    ... #your code
  end

  def second_method
    ... #your code
  end
end

次のようにヘルパーファイルを含めることもできます

class YourController < ApplicationController
  include OneHelper
  include TwoHelper
end
于 2012-11-28T20:02:15.673 に答える
20

を使用してコントローラーから任意のヘルパー メソッドを呼び出すことができますview_context

view_context.my_helper_method
于 2012-11-28T20:00:06.037 に答える
8

Ryan Bigg の反応は良好です。

他の可能な解決策は、コントローラーにヘルパーを追加することです。

class YourController < ApplicationController
  include OneHelper
  include TwoHelper
 end

よろしくお願いします!

于 2012-11-28T19:59:11.870 に答える