Подтвердить что ты не робот

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

4b9b3361

Ответ 1

Во-первых, вы проверяете равенство с ==, а не =, который является оператором присваивания.

Во-вторых - и об этом жалуется ошибка - вам нужно использовать только обычный <%, а не <%= с if-statement. Последняя форма пытается превратить код внутри него в строку, и, конечно, бессмысленно писать (if something == true).to_s - для этого нет никакого строкового значения.