2009-07-29 22 views
12

Belki de basit bir şeyleri özlüyorum ama buna baktıktan sonra anlayamıyorum.boolean ifadesi ile index üzerinde boolean ifadesi varsa index.html.erb sayfasında

Boolean'ın bir formdaki bir veritabanında doğru olup olmadığına bakmak istiyorum, eğer bu bir ok ise, aşağı ok değilse.

Bu

<% 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 %> 

var ama Ksonra veya bekliyor ')', beklenmeyen geri bu bu hata

derleme hatası

yazım hatası geliyor ':' veya '\ n' veya ';'

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

sözdizimi hatası, beklenmeyen kEND @ output_buffer.concat "\ t \ t"; @ Output_buffer.concat ((son) .to_s); @ output_buffer.concat "\ n"

cevap

31

Öncelikle .to_s işaret oklarla

, sen == değil =, eşitlik test atama operatörü.

İkincisi - ve bu, hatadan şikayetçidir - bir if deyimi ile yerine düz <% kullanmanız gerekir. İkinci form, içindeki kodu bir dizgeye dönüştürmeye çalışır ve elbette (if something == true).to_s yazmak anlamsızdır - bunun için olası bir dize değeri yoktur.

+1

Teşekkürler, basit bir şey olması gerektiğini biliyordum. Beynim bugün çalışmıyor. – Ryan