2009-07-29 29 views
12

多分私は何かシンプルが欠けているかもしれませんが、これを見ていてもわかりません。ruby​​ on if if文if boolean on index.html.erb page

フォーム上のデータベースでブール値が真であるかどうかをチェックしたい場合は、上向き矢印を表示します(下向き矢印でない場合)。

私はこの

<% 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((if probe.online = true).to_s); @ output_buffer.concat "\ n"

構文エラー、予期しないkEND @ output_buffer.concat "\ t \ t"; @ output_buffer.concat((エンド).to_s); @ output_buffer.concat "\ n" は

答えて

31

まず.to_sを指し示す矢印の付いた

は、あなたがある==、ない=、との平等をテスト代入演算子。

第2 - これはエラーが文句を言うものです - あなたは<%=ではなく、平文(plain)<%を使用する必要があります。後者の形式では、その内部のコードを文字列に変換しようとしています。もちろん、(if something == true).to_sと書くのは意味がありません。可能な文字列値はありません。

+1

ありがとう、私はそれが何か単純でなければならないことを知っていました。私の頭脳は今日働いていません。 – Ryan