2017-01-06 12 views
0

のために、私が持っているHAMLファイル:未定義のメソッド `働く各」

%h2 
    #{@schedule_item.schedule_id} 

とは、IDを出力します。

私は、試してみてください。

%h2 - @schedule_item.each do |test| %li test

をし、エラーが出る:未定義のメソッドに `各」ScheduleItem:0x007ff8b91c06b0

を私は、このインスタンス変数にそれぞれを実行することはできませんなぜ誰かが説明できますか?

+2

1つのインスタンスで 'each'を実行することはできません。ある種の配列またはenumarebleでなければなりません。 – Iceman

+1

は '@ schedule_item'という単一のインスタンスまたはコレクションですか?あなたは 'each'を単一インスタンスで実行することはできません。 – sa77

答えて

0

eachは、私はあなたが単一のインスタンス上でeachを実行したいがあれば、あなたが最初にする必要があり、あなたは、単一のインスタンスを反復している理由を見ることができない、けれども

コレクションオブジェクト/配列で使用することができる方法であり、このような配列としてキャストします。

%h2 
    - Array(@schedule_item).each do |test| 
    %li test 
+0

すばらしい、ありがとう。私がこのように立ち往生したときにインスタンス変数を検査/デバッグする簡単な方法はありますか?変数に関するすべての情報を表示したい場合は、それをdomに出力するだけですか? – jj1111

+0

hamlファイルで '= @ item.inspect'のようなことをするだけで、テンプレートで受け取っているオブジェクトを調べることができます。 – sa77

+0

素晴らしい、ありがとう/// – jj1111

0

この問題も発生しました。私の問題はコントローラでdef indexを忘れていたことでした。私が定義した後、問題は解決されました。

関連する問題