Как показать только изображения вариантов товара?

Прямо сейчас у меня есть следующий фрагмент кода, который извлекает все изображения, прикрепленные к продуктам Spree.

<% @product.images_by_variant.each do |variant_id,images| %>
    <ul class="gallery gallery-<%= variant_id %>" data-variant="<%= variant_id %>">
        <% images.each do |image| %>
            <li>
                <%= image_tag(image.attachment.url(:single)) %>
            </li>
        <% end %>
    </ul>
<% end %>

Однако есть также изображения, представляющие все варианты. Я хочу их скрыть.

Как я могу показать только вариант (например, разные цвета) для товаров?

Ваше здоровье!


person Vernon    schedule 28.01.2015    source источник
comment
Какую версию Spree вы используете? Я не вижу images_by_variant, определенного Spree::Product в 2.4 или master.   -  person gmacdougall    schedule 28.01.2015


Ответы (1)


Я нашел решение. В products_controller_decorator.rb я добавил следующий фрагмент кода к методу show:

variants = @product.variants
if variants.blank?
    @variants = @product
elsif variants.length > 1
   @variants = variants.reject {|variant| variant.is_master? }
end

В представлении я визуализировал следующую часть:

<% if @variants == @product %>
    <%= render partial: 'product_single/product_gallery', locals: {variant: @product} %>
<% else %>
    <% @variants.each do |variant| %>
        <%= render partial: 'product_single/product_gallery', locals: {variant: variant} %>
    <% end %>
<% end %>
person Vernon    schedule 03.02.2015