2009-07-29 62 views
12

也許我錯過了一些簡單的東西,但我找不到一段時間後看這個。ruby​​ on rails if語句與布爾on index.html.erb頁

我想檢查一個窗體上的數據庫中的布爾值是否爲真,如果它顯示向上箭頭,如果不是向下箭頭。

我有這個

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

,但它這次回來這個錯誤

編譯錯誤

語法錯誤,意外 ')',預計kTHEN或 ':' 或 '\ n'要麼 ';'

@ output_buffer.concat「\ t \ t」; @ output_buffer.concat((如果probe.online = true).to_s); @ output_buffer.concat「\ n」

語法錯誤,意外kEND @ output_buffer.concat「\ t \ t」; @ output_buffer.concat((結束).to_s); @ output_buffer.concat 「\ n」 個

與在.to_s指向

回答

31

首先箭頭,則測試相等與==,不=,這是賦值運算符。

第二 - 這就是錯誤所抱怨的 - 你只需要使用普通的<%而不是<%=和if語句。後一種形式試圖將其內部的代碼轉換爲字符串,當然編寫(if something == true).to_s毫無意義 - 這裏沒有可能的字符串值。

+1

謝謝,我知道它必須是簡單的東西。我的大腦今天工作不正常。 – Ryan 2009-07-29 15:49:47