特定の(またはすべての)コントローラーに必要なRubyメソッドがいくつかあります。それらを/app/helpers/application_helper.rb
に入れてみました。ビューで使用されるメソッドにそれを使用しました。ただし、コントローラーにはこれらのメソッドは表示されません。それらを配置する必要がある別の場所はありますか、それらのヘルパーメソッドに異なる方法でアクセスする必要がありますか?
最新の安定したRailsを使用します。
ApplicationController
内でメソッドを定義する必要があります。
Rails 4以降では、懸念事項があります。ここにはまともな記事があります http://richonrails.com/articles/Rails-4-code-concerns-in -active-record-models
基本的に、コントローラーフォルダーを見ると、懸念サブフォルダーが表示されます。これらの行に沿ってモジュールを作成します
module EventsHelper
def do_something
end
end
次に、コントローラにそれを含めるだけです
class BadgeController < ApplicationController
include EventsHelper
...
end
アプリケーションコントローラ内でメソッドを定義する必要があります。メソッドが少ない場合は、次のようにできます
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
view_context
を使用して、コントローラーからヘルパーメソッドを呼び出すことができます。
view_context.my_helper_method
ライアン・ビッグの反応は良いです。
他の可能な解決策は、コントローラーにヘルパーを追加することです:
class YourController < ApplicationController
include OneHelper
include TwoHelper
end
宜しくお願いします!