URLとして、

http://hogehoge.com/home/

という表記が良かったので、

app/controllers/home_controller.rb app/helpers/home_helper.rb app/views/home/index.rhtml

という3セットを作って、index.rhtml内で使いたいhelperメソッドをhome_helper.rbに記述したのだが、何故かhelperメソッドが見つからないと言われる。具体的には次のようなプログラム。

# =-=-= home_controller.rb =-=-=-=-=-= class HomeController < ApplicationController def index end end # =-=-= home_helper.rb =-=-=-=-=-= module HomeHelper def hoge(str) str.upcase end end # =-=-= index.rhtml =-=-=-=-=-= <%= hoge('abc') %>

そこで試しにhome_controller.rbに明示的に以下のように宣言を書いてみると動いた。

# =-=-= home_controller.rb =-=-=-=-=-= class HomeController < ApplicationController helper :home # 明示的に def index end end

しかし、home_helper.rb(HomeHelperクラス)は規約に則っているので宣言は必要ないはずだ。おかしい。

原因を確かめるべく、再びコントローラに記述したhelper :homeの行を削除して元に戻してみると・・・なぜか今度はエラーとはならずちゃんと動く。う~む、気持ち悪い。