『undefined method `each' for ...』のエラーについて
超基本中の基本。
ですが、RailsでWebアプリ作っている時に、このエラーが出て
ちょいと調べたので、調べたものは記しておこうという姿勢で行きます。
エラーメッセージの内容は凄く単純で、
『undefined method `each' for ...』
要するに、for以下の文言に出てくるオブジェクトに対して、
eachメソッドが定義されていないということ。
個人的には配列で返って来ると想定していたオブジェクトに使用して
いたのですが、どうも配列で返って来なかったみたい。
以下、簡単なテスト。
aを配列オブジェクトとした場合
1.9.2-p290 :001 > a = [1,2,3] => [1, 2, 3] 1.9.2-p290 :002 > a.each do |a| 1.9.2-p290 :003 > p a 1.9.2-p290 :004?> end 1 2 3 => [1, 2, 3]
正常終了。
aを文字列オブジェクトとした場合
1.9.2-p290 :005 > a = "test" => "test" 1.9.2-p290 :006 > a.each do |a| 1.9.2-p290 :007 > p a 1.9.2-p290 :008?> end NoMethodError: undefined method `each' for "test":String
『undefined method `each' for ...』のエラーが発生します。
文字列オブジェクトはeachメソッドを持っていないこととなります。