Also mache ich eine Spree-Erweiterung, in der ich mein eigenes Attribut, das ich Spree::Shipment
hinzugefügt und eine Eingabe während des Checkout-Prozesses hinzugefügt haben, das Problem ist mein Attribut ist nicht Teil der zulässigen Attribute für Sendungen, und es ist nicht klar, wie sie zu den zulässigen Attributen hinzugefügt werden. Ich fand das Gespräch auf this pull req dieSpree 3.0 Hinzufügen zu erlaubten Attributen in der Erweiterung
Spree::PermittedAttributes.shipment_attributes << :my_custom_attribute
jedoch zu verwenden, sagt, es ist unklar, wo soll ich sagen !?
"Oh, steckte es in spree.rb
"
Dies hilft nicht. Ich habe versucht, in
diesen Code setzenlib/spree.rb
lib/spree/permitted_attributes.rb
lib/spree_decorator.rb
lib/spree/permitted_attributes_decorator.rb
(as suggested here) und alle diese Folge in entweder einem Fehler beschweren sich über shipment_attributes
nicht definiert ist (so vermutlich der Code ausgeführt wird, bevor die Haupt-Datei definieren PermittedAttributes
ausgewertet wird) oder einfach nichts passiert. Wo sollte ich diesen Code platzieren, um mein Attribut der Liste der erlaubten Attribute hinzuzufügen?
Edit: Da dies für die Leute unklar scheint, habe ich alle Dinge in den Links, die ich gepostet habe aufgelistet. Mir zu sagen, dass ich die Dinge in ihnen ausprobieren soll, ist ziemlich ärgerlich. Hör auf.
"Ich denke, es könnte besser sein, es in ApplicationController oder einer anderen Datei, die mit der App geladen wird, obwohl. Sie könnten Probleme auftreten, wo Rails den App-Code neu laden würde und Attribute auf diesem Klassen-Accessor fehlen" - Cited aus dem GitHub-Thread ... hast du es in ApplicationController versucht? – SsouLlesS
Haben Sie versucht, es in einen Initialisierer zu setzen, wie es in der Aktualisierung des von Ihnen geposteten Artikels vorgeschlagen wurde? (http://www.rubycoloredglasses.com/2014/04/strong-parameters-with-spree-extensions/) – jphager2
Ich habe auch ein paar benutzerdefinierte Attribute und ich fügte 'Spree :: PermittedAttributes.shipment_attributes <<: my_custom_attribute' hinzu in config/initializers/spree.rb (am Ende) und es funktionierte für mich –