2015-10-05 9 views
8

私が読んでいるレールのドキュメントであるhereと混乱しています。特に、この文:デフォルトではRails 4.2.4のコントローラでヘルパーを使用する

、各コントローラは、すべてのヘルパーが含まれます。これらのヘルパー は、それが参照しているこの.helpersは何.helpers

を介してコントローラ上でのみアクセス可能ですか?私はapp/helpers/areas_helper.rbで定義されたヘルパーを持っている:

module AreasHelper 
    def my_helper 
    puts "Test from helper" 
    end 
end 

私はapp/controllers/locations_controller.rbにこのヘルパーを使用したい:

class LocationsController < ApplicationController 
    def show 
    helpers.my_helper 
    end 
end 

しかし、私はメソッド未定義のエラーが発生します。これはどのように.helpersを使用するのですか?

私はコントローラのヘルパーにアクセスする他の方法があることを知っていますが、私は具体的にこのドキュメントとそれが何を言おうとしているのかを尋ねています。

+0

'.helpers'への参照は、' redirect_to'などの組み込みのRailsヘルパーです。 –

+0

しかし、それはどういう意味ですか? '.helpers'は、' redirect_to'のようなRailsヘルパーを組み込んだときにどこに出現しますか? – flyingL123

+0

Tbh分かりません。私はそれを読んでいる。私の答えは有効です。それは私たちのコントローラーでカスタムヘルパーを使う方法です。--helpersについては、私はそれを見ています –

答えて

7

あなたがコントローラでヘルパークラスを含むことを意味している:

#app/controllers/locations_controller.rb 
class LocationsController < ApplicationController 
    include AreasHelper 

    def show 
     my_helper 
    end 
end 
+1

複数のヘルパーが必要な場合は、コンマで区切ることができます。「Includes AreasHelper、AnotherHelper''' –

3

この機能は、だから、PR https://github.com/rails/rails/pull/24866

を以下にRailsの5で導入された、私たちはRailsの5からこの機能を使用することができますRails 4.xではなく、それ以降である。

関連する問題