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
?