2009-09-02 1 views
0

私はコントローラにメソッドを追加し、それをヘルパーメソッドとして宣言するプラグインを作成しています。静的に(プラグインではなく)実行された場合、次のようになります。どのようにして、どのメソッドが "helper"メソッドとしてRailsのコントローラによって宣言されているかをプログラムで判断できますか?

# in RAILS_ROOT/app/controllers/stuffed_animals_controller.rb 
class StuffedAnimalsController < ActionController::Base 

    private 

    def bear 
    'Teddy Bear' 
    end 

    helper_method :bear 

end 

# in RAILS_ROOT/app/views/stuffed_animals/index.html.erb: 
<%= bear -%> 

これはうまく動作します。私は、:some_helper_method実際にはヘルパーメソッドであることをテストしたいです。私はこれを試してみました:

def test_declared_bear_as_helper_method 
    assert StuffedAnimalsController.helper_methods.include?(:bear) 
end 

残念ながら、ActionController::Base:helper_methodsクラスメソッドを持っていません。クラスが公開するもののリストをどこから得ることができるのか誰でも知っていれば:helper_method

答えて

0

ありがとうございました!

def test_declared_bear_as_helper_method 
    helper = Object.new 
    helper.extend StuffedAnimalsController.master_helper_module 
    assert helper.respond_to?(:bear) 
end 
関連する問題