UsersProfileController a params fortes qui ressemble à ceci:Params forts: params.permit renvoie les paramètres en dépit whitelist
def user_profile_params
params.permit(:age, :relations)
# yes, I am not requiring user_profile. Just permitting attributes I need.
end
La création des compositions d'action UserProfile par un parent (a-un et appartient à l'association)
def create
parent = Parent.create_guest
parent.build_user_profile(user_profile_params)
if parent.save
# do something
else
# handle error
end
end
params Appel dans les déclarations de UserProfiles:
<ActionController::Parameters
{"age"=>"23",
"relations"=>"3",
"subdomain"=>"api",
"format"=>:json,
"controller"=>"api/v1/user_profiles",
"action"=>"create"}
permitted: false>
Appel user_profile_params, renvoie ceci:
user_profile_params:
Unpermitted parameters: subdomain, format
<ActionController::Parameters
{"age"=>"23",
"relations"=>"3", }
permitted: true>
Lorsqu'une demande de poste arrive, je me attendre à être en mesure de créer user_profile en utilisant les paramètres dans la liste blanche user_profile_params. Au lieu de cela, l'action create
dans UserProfiles échoue avec l'erreur: Unpermitted parameters: subdomain, format
.
Ce n'est pas ce à quoi je m'attendais. Je m'attendais à ce que user_profile_params inclue seulement les valeurs permises et ignore tous les autres.
Je pourrais ajouter :format
et :subdomain
à la liste des attributs autorisés, mais quelque chose semble un peu à ce sujet.
Quelqu'un peut-il expliquer ce qui se passe ou ce qui me manque?
Il me semble que vous ne passez pas réellement ce bloc de création dans votre UsersProfileController. –
@ChrisMoody: Je ne suis pas sûr de comprendre ce que vous voulez dire. Si vous voulez dire que la méthode n'est pas appelée, alors ce n'est pas vrai. A pu entrer dans l'action 'create' dans le UsersProfileController et trouvé que l'erreur se produisait quand' user_profile_params' est appelé sur cette ligne spécifique 'parent.build_user_profile (user_profile_params)'. Pouvez-vous expliquer ce que vous voulez dire? – Uzzar