如何仅显示狂欢产品变体图像?
How to show spree product variant images only?
现在我有以下代码,它检索附加到 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 %>
但是,也显示了代表所有变体的图像。我想隐藏那些。
如何只显示产品的变体(例如不同颜色)?
干杯!
我找到了解决方案。在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 %>
现在我有以下代码,它检索附加到 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 %>
但是,也显示了代表所有变体的图像。我想隐藏那些。
如何只显示产品的变体(例如不同颜色)?
干杯!
我找到了解决方案。在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 %>