#ruby-on-rails
#ruby-on-rails
Вопрос:
Я только начал играть с rails, каков наилучший способ сделать следующее: @events.x — целое число, если его значение не равно> 0, оно должно быть скрыто.
<div class="chartwell radar">
<span style="color: #fff;">dx</span>
<span style="color: #3498db"><%= @events.design %></span>
<span style="color: #1abc9c"><%= @events.typography %></span>
<span style="color: #2c3e50"><%= @events.code %></span>
<span style="color: #f8ff08"><%= @events.art %></span>
<span style="color: #fd79f2"><%= @events.lifestyle %></span>
</div>
Комментарии:
1. Можете ли вы объяснить немного больше?
2. @events указывает на мою базу данных, где «дизайн», «типография» и т. Д. Хранятся в виде целых чисел. Если такие целые числа имеют значение 0, оно должно быть скрыто в приложении. Что-то вроде [if == 0 (скрыть это)]
Ответ №1:
Согласно вашему комментарию, вы хотите показать значение, только если значение целого числа не равно 0. таким образом, вы можете использовать этот пример:
<span style="color: #3498db"><%= @events.design unless @events.design.to_i == 0 %></span>
Или, если вы хотите, чтобы диапазон тоже не отображался
<% unless @events.design.to_i == 0 %>
<span style="color: #3498db"><%= @events.design %></span>
<% end %>
Дайте мне знать, если вы имели в виду что-то другое.
Ответ №2:
Когда вы говорите «это скрыто», что такое «это»? Весь div выше? Что-то еще?
Если вы хотите условно отобразить div для @events.x, например, @events.art, вы могли бы сделать
<% unless @events.art == 0 %>
<span style="color: #f8ff08"><%= @events.art %></span>
<% end %>
выполнение этого для всех из них немного утомительно и повторяющееся. Вы могли бы высушить его следующим образом:
<div class="chartwell radar">
<span style="color: #fff;">dx</span>
<%
[["#3498db", "design"],
["#1abc9c", "typography"],
["#2c3e50", "code"],
["#f8ff08", "art"],
["#fd79f2", "lifestyle"]].each do |color, method| %>
<% value = @events.send(method) %>
<% unless value == 0 %>
<span style="color: <%= color %>;"><%= value %></span>
<% end %>
<% end %>
</div>