2007年06月25日
■Helperの謎
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の行を削除して元に戻してみると・・・なぜか今度はエラーとはならずちゃんと動く。う〜む、気持ち悪い。
投稿者 iwazawa : 2007年06月25日 01:09コメント
こんばんわ、いわさん。
おひさしぶりです、UOでお世話になったりょうです。
お元気ですか?
気がついたら、社会人生活2年目突入です。
プログラマーやってますけど、面白いですね。
懐かしくてついつい書き込みしてみました。V(^^)
おぉ!ひっさしぶり!
ちなみにUOでお世話になったのは私の方ですが(汗)
そうか、もうそんなに経っちゃいましたか。
ちょっち前に体調を崩してから、更新が途絶えてますが、
そろそろまた書き始めようと思ってたんで、良かったらちょくちょく見てやって下さい。
コメントする