2010年10月22日金曜日

スクリプトのこんなところが嫌い

 rails で @hoge = Hash.new を使っていたのだが、erb の template で値が引けない。何が悪いのかさっぱり、わからんかったが、どうやら、key に代入された型が、integer なのか、string なのかで挙動が変わっていた。
ところが、片方では 明示的に .to_i しなくても integer 型で登録され、もう片方では明示的に .to_i しないと string 型で登録されてしまう。

 ソースを追うと、ここかしこに選択子があり嫌な感じだ。

1. ActiveRecord から find_by_sql で引いた値が、integer 型なのか、string型なのか不明瞭
2. Hash.new した値に登録する時に、integer 型で登録するのか string 型で登録するのか選択できる
3. template 内で、@hoge[ key.to_i ] するのかどうか?そもそも、key の型が何なのか全く予測がつかない。

どうも、こんなあたりに、げんなりします。

0 件のコメント: