アプリケーションで spree 2.0.0 安定版を使用しています。製品表示ページでは、すべてのバリエーションがラジオ ボタンとして表示されます。ドロップダウンで表示したいだけです。これについて何か考えはありますか?
ありがとう。
アプリケーションで spree 2.0.0 安定版を使用しています。製品表示ページでは、すべてのバリエーションがラジオ ボタンとして表示されます。ドロップダウンで表示したいだけです。これについて何か考えはありますか?
ありがとう。
注: このソリューションは、Spree の「テンプレート置換方法」を実装します。特に、アプリケーションの設計に大幅な設計変更がある場合、またはカスタム設計を使用している場合に当てはまります。こちらをご覧ください
http://guides.spreecommerce.com/developer/view.html
それ以外の場合は、Spree ストアのデフォルト デザインまたはマイナー チェンジを使用している場合は、「deface」メソッドを使用します。
次の場所に移動します。
app/views/spree/products/_cart.html.erb. カートフォーム内に次の行を書きました。
<%= select_tag "products[#{@product.id}]", options_for_select(@product.variants_and_option_values(current_currency).collect{|v| ["#{variant_options(v)} #{variant_price(v)}", v.id]})%>
#(if you don't have this file(app/views/spree/products/_cart_form.html.erb) go to github spree2.0.0 branch and use it in your product.)
これがあなたにとってもうまくいくことを願っています。
ありがとう
選択タグにも「variant_id」の ID が必要なようです。そうしないと、注文入力アクションで 404 エラーが発生します。
これが私がspree 3.0のためにしたことです。これはファイル \app\overrides\use_drop_down_for_variants.rb に入れられました
Deface::Override.new(:virtual_path => 'spree/products/_cart_form',
:name => 'use_drop_down_for_product_variants',
:replace_contents => '[id="product-variants"]',
:text => '
<h3 class="product-section-title"><%= Spree.t(:variants) %></h3>
<%= select_tag "variant_id",
options_for_select(@product.variants_and_option_values(current_currency).collect{ |v| ["#{variant_options(v)} #{variant_price(v)}", v.id] })%>
');