Ruby on rails if statement with boolean на странице 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"
синтаксическая ошибка, неожиданный кенд
@output_buffer.concat "\ t\t"; @output_buffer.concat((end).to_s); @output_buffer.concat "\n"
со стрелками, указывающими на .to_s
Ответы
Ответ 1
Во-первых, вы проверяете равенство с ==
, а не =
, который является оператором присваивания.
Во-вторых - и об этом жалуется ошибка - вам нужно использовать только обычный <%
, а не <%=
с if-statement. Последняя форма пытается превратить код внутри него в строку, и, конечно, бессмысленно писать (if something == true).to_s
- для этого нет никакого строкового значения.