2009-07-29 61 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