2012-04-04 25 views
-4

Was wird dieser Code tun?Was macht dieser Schienencode?

Was ist der Zweck des Sammelns in diesem Code?

Wenn Collect-Methode nicht verwendet wird, was wird passieren ??

<%= 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') %> 

Wenn ich dies ausführen, wird der Fehler "undefined Methode sammeln" angezeigt. Ich benutze redmine0.8.2 und rails2.0.2 auf Linux. Das ist ein bisschen Code von einem meiner Plugins.

Antwort

3

Dieser Code zeigt eine Auswahleingabe mit Optionen an.

Ihr Fehler ist wahrscheinlich auf @projects ist Null undefined. Sie versuchen zu sammeln, was eine Methode für Array oder Hash ist, während Ihre Variable Null ist.

Sie müssen es in Ihrem Controller mit einem Array oder einem Hash definieren, aber wahrscheinlich mit einem Array, das Projektobjekte enthält.