我正在将Spree用于ecommerece网站,每种产品将以大量颜色出售,大多数客户都希望购买相同产品的不同颜色(例如变体)。我希望允许客户在同一页面上添加同一产品的多个变体,我目前有一个带有单选按钮的变体列表,可以选择购买变体和数量。相反,我只想要一些默认为零的数量框,以便客户可以简单地将他们想要的数字添加到每个变体中,然后单击添加到购物车。看完订单管理员后,我想出了这个
<% has_checked = false
@product.variants.active.each_with_index do |v,index|
next if v.option_values.empty? || (!v.in_stock && !Spree::Config[:show_zero_stock_products])
checked = !has_checked && (v.in_stock || Spree::Config[:allow_backorders])
has_checked = true if checked %>
<li>
<label for="<%= ['products', @product.id, v.id].join('_') %>">
<span class="variant-description">
<%= variant_options v %> <%= text_field_tag (@product.has_variants? ? :quantity : "variants[#{@product.master.id}]"),1, :class => "title", :size => 3 %>
</span>
<% if variant_price_diff v %>
<span class="price diff"><%= variant_price_diff v %></span>
<% end %>
</label>
</li>
<% end%>
它的作用在于它显示了我想要的东西,变量和数量框的列表,但每当我添加数量并将它们添加到购物车时,它只是默认为列表中的最后一项和最后一项数量框。我已经尝试了一些但没有正确的事情,有谁知道我会怎么做呢?
答案 0 :(得分:1)
<%= text_field_tag "variants[#{v.id}]",0, :class => "title", :size => 3, :disabled => !v.in_stock && !Spree::Config[:allow_backorders] %>
希望这有助于其他人!