2012-04-04 17 views
-4

このコードは何をしますか?このコードは何をしますか?

このコードでcollectを使用する目的は何ですか?

collectメソッドを使用しないとどうなりますか?

<%= select_tag(isTemplate ? '__template__time_entry[][project_id]' : 'time_entry[][project_id]', 
       options_for_select(@projects.collect{|p| [ p.name, p.id ] }, 
           :selected => entry.nil? ? 0 : entry.project_id), 
       :onchange => 'projectChanged(this,' + @row.to_s() + ')', 
       :style=> 'width:150px') %> 

これを実行すると、「未定義メソッドの収集」というエラーが表示されます。 私はLinuxでredmine0.8.2とrails2.0.2を使用しています。これは私のプラグインのコードの一部です。

答えて

3

このコードは、オプションで選択入力を表示します。

あなたのエラーはおそらく@projectsがnilであり、未定義であるためです。あなたは変数がnilであるのに対し、ArrayまたはHashのためのメソッドを収集しようとします。

コントローラ内で配列またはハッシュを使用して定義する必要がありますが、おそらく配列を含むプロジェクトオブジェクトを定義する必要があります。

関連する問題