2009-07-29 15 views
12

Vielleicht vermisse ich etwas einfaches, aber ich kann nicht herausfinden, nach einiger Zeit, dies zu betrachten.ruby ​​on rails if Aussage mit boolean auf index.html.erb Seite

Ich möchte überprüfen, ob ein Boolean in einer Datenbank in einem Formular wahr ist, wenn es einen Pfeil nach oben zeigt, wenn nicht Pfeil nach unten.

Ich habe diese

<% for probe in @probes %> 
    <tr id="<%= cycle('list-line-odd', 'list-line-even') %>"> 
     <td> 
     <%= if probe.online = true %> 
     <%= image_tag("online-icon.png", :alt => "Online") %>   
     <%= end %> 
    </td> 
     <td><%= link_to probe.probe_name, probe %></td> 
    </tr> 
    <% end %> 

aber es kommt wieder das dieser Fehler

Kompilierungsfehler

Syntaxfehler, unerwartete ')', erwartet kTHEN oder ':' oder '\ n' oder ';'

@ output_buffer.concat "\ t \ t"; @ output_buffer.concat ((falls probe.online = true) .to_s); @ output_buffer.concat "\ n"

Syntaxfehler, unerwartete KEND @ output_buffer.concat "\ t \ t"; @ Output_buffer.concat ((Ende) .to_s); @ output_buffer.concat "\ n"

mit Pfeilen an den .to_s Zum einen

Antwort

31

zeigen, testen Sie für die Gleichstellung mit ==, nicht =, das ist die Aufgabenverwalter.

Zweitens - und das ist, worüber sich der Fehler beschwert - Sie müssen einfach nur <% statt <%= mit einer if-Anweisung verwenden. Die letztere Form versucht, den darin enthaltenen Code in eine Zeichenfolge umzuwandeln, und natürlich ist es sinnlos, (if something == true).to_s zu schreiben - dafür gibt es keinen möglichen Zeichenfolgenwert.

+1

Danke, ich wusste, dass es etwas Einfaches sein musste. Mein Gehirn funktioniert heute nicht richtig. – Ryan