Mise à jour de la mise en forme du code pour une meilleure visualisation.
Gens,
Je regarde cela depuis un certain temps mais je ne comprends pas ce qui pourrait gâcher ici. J'utilise Devise.
class User < ActiveRecord::Base
has_many :addresses
accepts_nested_attributes_for :addresses
# Other stuff here
end
class Address < ActiveRecord::Base
belongs_to :user
validates_presence_of :Zip #:street_address1,
fin
-------------------- la sortie du journal commence --------------------------- ---
Démarré POST "/ users" pour 127.0.0.1 au 2011-05-28 11:43:27 -0700 Traitement par RegistrationsController # create as HTML Paramètres: {"utf8" => "√" , "authenticity_token" => "CEmdqlsmdYa6Jq0iIf5KAxxISsUCREIrFNXWkP80nhk =", "user" => {"email" => "[email protected]", "password" => "[FILT ERED]", "adresses_attributes" => {" "=> {" street_address1 "=>" 234 Pitkin Ct. "," Zip "=>" 12456 "}}}," commit "=>" S'inscrire "} AVERTISSEMENT: impossible d'attribuer en masse des attributs protégés: adresses_attributs SQL (0,0 ms) COMMENCER SQL (164,0 ms) AFFICHER LES TABLES
Charge utilisateur (0,0 ms) SELECTusers
.id
FROMusers
WHERE (users
.-------------------- fin de la sortie du journal --------------------------- ---
Le Zip est présent dans les données publiées et les données publiées semblent être correctement formatées. Sur le formulaire de la page Web, je reçois le message d'erreur "Les adresses Zip ne peuvent pas être vides". J'ai recherché les causes de l'avertissement "Impossible d'attribuer en masse les attributs protégés", mais je n'ai rien trouvé qui puisse m'aider.
Merci pour vos pensées et vos conseils.
-S
Jetez un œil ici et apprenez :)
http://railscasts.com/episodes/26-hackers-love-mass-assignment
Éditer:
Le fait d'avoir accepts_nested_attributes_for
Dans le modèle utilisateur vous permet d'envoyer les données au modèle d'adresse.
Ensuite, dans le modèle d'adresse, vous devez définir le attr_accessible
Demandé
À l'intérieur de SpecificModel
(appfolder/app/model/specific_model.rb)
Essayez d'utiliser
attr_accessible :addresses_attributes, :another_attribute_to_make_mass_assignable, :another_attribute, etc.
De nos jours (avril 2013), vous devriez commencer à utiliser https://github.com/Rails/strong_parameters
Il suffit d'inclure le champ de données dans le modèle comme mentionné ci-dessous
attr_accessible :addresses_attributes