Quindi sto creando un'estensione spree in cui ho il mio attributo che ho aggiunto a Spree::Shipment
e aggiunto un input durante il processo di checkout, il problema è che il mio attributo non fa parte del attributi consentiti per le spedizioni e non è chiaro come aggiungerlo agli attributi consentiti. Ho trovato la conversazione su this pull req che dice di usareSpree 3.0 aggiunta agli attributi consentiti nell'estensione
Spree::PermittedAttributes.shipment_attributes << :my_custom_attribute
Tuttavia, non è chiaro Dove metto questo !?
"Oh, lo mise in spree.rb
"
Questo non aiuta. Ho provato a mettere il codice in
lib/spree.rb
lib/spree/permitted_attributes.rb
lib/spree_decorator.rb
lib/spree/permitted_attributes_decorator.rb
(as suggested here) e tutti questi risultati in un errore che lamentano shipment_attributes
non essendo definita (quindi presumibilmente il codice viene eseguito prima che il file principale definente PermittedAttributes
è valutata) o semplicemente non accade nulla. Dove devo inserire questo codice per aggiungere il mio attributo all'elenco degli attributi consentiti?
Modifica: Poiché questo non sembra chiaro alle persone, ho provato tutte le cose elencate nei collegamenti che ho postato. Dicendomi di provare le cose in loro è piuttosto esasperante. Smettila.
"Penso che potrebbe essere meglio aggiungerlo in ApplicationController o in qualche altro file che viene ricaricato con l'app. Potrebbero verificarsi problemi in cui le rotaie ricaricherebbero il codice dell'app e gli attributi sarebbero mancanti su quell'accessorio di classe" - Citato dal thread github ... hai provato in ApplicationController? – SsouLlesS
Hai provato a inserirlo in un inizializzatore, come suggerito nell'aggiornamento dell'articolo che hai pubblicato? (http://www.rubycoloredglasses.com/2014/04/strong-parameters-with-spree-extensions/) – jphager2
Ho anche un paio di attributi personalizzati e ho aggiunto 'Spree :: PermittedAttributes.shipment_attributes <<: my_custom_attribute' in config/initializers/spree.rb (alla fine) e ha funzionato per me –