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(^^)


Posted by: りょう : 2007年08月26日 23:59

おぉ!ひっさしぶり!
ちなみにUOでお世話になったのは私の方ですが(汗)

そうか、もうそんなに経っちゃいましたか。
ちょっち前に体調を崩してから、更新が途絶えてますが、
そろそろまた書き始めようと思ってたんで、良かったらちょくちょく見てやって下さい。

Posted by: iwa : 2007年08月27日 00:11
コメントする









名前、アドレスを登録しますか?