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の行を削除して元に戻してみると・・・なぜか今度はエラーとはならずちゃんと動く。う~む、気持ち悪い。