Rails如果大于0

时间:2014-06-20 12:42:35

标签: 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>

2 个答案:

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

如果你的意思不同,请告诉我。

答案 1 :(得分:0)

当你说“隐藏”时,什么是“它”?整个div上面?还有别的吗?

如果您想有条件地为@ events.x显示div,例如@ 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>