Rails 5 if语句带循环索引

时间:2018-04-23 15:09:03

标签: ruby-on-rails ruby ruby-on-rails-5

我的product模型与has_many模型有variation关系。这些变化正在循环到产品缩略图滑块中并且效果很好。但是,对于只有一种变体的产品,我不想显示缩略图。

我认为我理解with_index是正确的并且我正在尝试使用它来显示变体缩略图,只有当缩略图大于0,但我没有得到预期的结果 - 其他变体拇指不是显示;只是第一个。

<% @product.variations.each_with_index do |v, index| %>
  <% if index >= 1 %>
    <% if v.photo_one.present? %>
      <div class="col-md-2" style="padding: 0 7px">
        <div class="btn-filter-wrap">
          <button class="btn-filter"
            data-filter=".id-<%= v.id %>"
            style="background: url(<%= (v.photo_one_url(:thumb)) %>) no-repeat center;
                background-size: contain;
                width: 100%;
                height: 130px">
          </button>
        </div>
        <div class="row">
          <div class="col-md-2" style="width: 100%; text-align:center">
            <h5 style="font-weight: 800;
                text-transform: uppercase;
                color: #555555;
                line-height: 1.8"><%= v.name %></h5>
          </div>
        </div>
      </div>
    <% end %>
  <% end %>
<% end %>

2 个答案:

答案 0 :(得分:2)

如果我理解正确,您只想在变体数大于1时显示缩略图滑块,这可以通过查看@product.variations.count来完成。我认为没有必要使用索引。

<% if @product.variations.count > 1 %>
  <% @product.variations.each do |v| %>
    ...
  <% end %>
<% end %>

答案 1 :(得分:0)

如果产品有多个变体,您想要显示变体吗?试试这个。

var a = 1, b = 2, c = 3;