Mon formulaire d'inscription, qui est un formulaire pour le modèle Users, prend une valeur de chaîne pour entreprise. Cependant, je viens de faire un changement pour que les utilisateurs appartiennent aux entreprises. Par conséquent, je dois passer un objet Entreprise au modèle Utilisateurs.
Je souhaite utiliser la valeur de chaîne du formulaire pour obtenir l'objet an de Company:
@user.company = Company.find_by_name(params[:company])
Je crois que ce qui précède fonctionne, mais le formulaire passe le: company (qui est une chaîne) dans le modèle lorsque j'appelle:
@user = User.new(params[:user])
Par conséquent, je veux savoir (et je ne peux pas trouver comment) supprimer le paramètre: company avant de le passer au modèle User.
la source
model_params.delete :key_name
ne fonctionne pas - aucune idée pourquoi?assin_params = params.dup.delete(:company)
. ne jamais supprimer des paramètres directementassign_params = params.dup; assign_params.delete(:company)
model_params
fonction était une fonction, qui tirait les paramètres pertinentsparams
. Alors , quand vousdelete
demodel_params
vous vraiment juste la suppression du hachagemodel_params
rendement.Vous devriez probablement utiliser hash.except
Il accomplit 2 choses: vous permet d'exclure plus d'une clé à la fois et ne modifie pas le hachage d'origine.
la source
"-1"
comme clé. {"utf8" => "✓", "_method" => "patch", "authenticity_token" => "VtY ...", "brochure" => {"title" => "Hello world", "profilings_attributes" => {"-1" => {"member_profile_id" => "3"}, "0" => {"pourcentage" => "10.0", "description" => "Une description!", "_Destroy" = > "false", "id" => "10"}, "1" => {...}}, "sponsorings_attributes" => {"-1" => {"sponsor_id" => "2"}, "0" => {"brochure_id" => "La bonne façon d'y parvenir est d'utiliser
strong_params
De cette façon, vous avez plus de contrôle sur les paramètres à passer au modèle
la source
cela supprimera les paramètres de l'URL
la source
Pour être possible de supprimer, vous pouvez faire un mémo :
Maintenant vous pouvez faire:
la source