Come di Spree 2.2.0.beta (e probabilmente prima), si dovrebbe utilizzare la gemma Deface incluso per essere fare questa modifica, invece di modificare direttamente i file core.
Per sostituire il contenuto del codice che si trova nel file vista baldoria frontend app/views/spree/products/_cart_form.html.erb
(notare il nome è cambiato da Spree v2.0):
Creare una cartella a app/overrides/spree/products/_cart_form/
e aggiungere un file .deface
con il nome di la tua scelta es. variant_dropdown.html.erb.deface
In questo caso, poiché il codice sostitutivo contiene codice ruby dinamico, è necessario lo .erb
.
Quindi, nel contenuto di questo file, selezionare il codice che si sta tentando di modificare dal core e sostituirlo con il proprio codice personalizzato. Ecco come si presenta il mio file .deface
.
<!-- replace_contents "[data-hook='inside_product_cart_form'] #product-variants, #inside-product-cart-form[data-hook] #product-variants" -->
<h6 class="product-section-title"><%= Spree.t(:licenses) %></h6>
<%= 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] })%>
Il punto di questo è che i futuri aggiornamenti di Spree altrimenti sovrascrivere il codice o richiedono di riscrivere manualmente il codice ogni volta. Ciò tenta di rendere future le tue modifiche agganciandole al selettore data
che persisterà sugli aggiornamenti.
fonte
2013-11-27 21:23:28
Si tratta di un esempio funzionante? Sto ottenendo l'errore 404 come indicato di seguito ... –