2009-07-29 31 views
12

Có lẽ tôi đang thiếu một cái gì đó đơn giản nhưng tôi không thể tìm ra sau một thời gian nhìn vào điều này.ruby ​​trên đường ray nếu tuyên bố với boolean trên trang index.html.erb

Tôi muốn kiểm tra xem boolean có đúng trong cơ sở dữ liệu trên biểu mẫu hay không, nếu nó hiển thị mũi tên lên, nếu không phải mũi tên xuống.

Tôi có điều này

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

nhưng nó quay trở lại này lỗi này

lỗi biên dịch

lỗi cú pháp, bất ngờ ')', mong kTHEN hoặc ':' hoặc '\ n' hoặc là ';'

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

lỗi cú pháp, kEND không mong muốn @ output_buffer.concat "\ t \ t"; @ Output_buffer.concat ((kết thúc) .to_s); @ output_buffer.concat "\ n"

với mũi tên chỉ vào .to_s

Trả lời

31

Trước hết, bạn kiểm tra cho sự bình đẳng với ==, không =, đó là toán tử gán.

Thứ hai - và đây là lỗi mà bạn đang phàn nàn - bạn chỉ cần sử dụng số <% đơn giản thay vì <%= bằng câu lệnh if. Dạng thứ hai cố gắng để biến mã bên trong nó thành một chuỗi, và tất nhiên nó là vô nghĩa để viết (if something == true).to_s - không có giá trị chuỗi có thể cho điều đó.

+1

Cảm ơn, tôi biết nó phải đơn giản. Bộ não của tôi không hoạt động ngay hôm nay. – Ryan

Các vấn đề liên quan