UsersProfileController hat starke params, die wie so aussehen:Starke Params: params.permit Unzulässige Parameter trotz weißer Liste gibt
def user_profile_params
params.permit(:age, :relations)
# yes, I am not requiring user_profile. Just permitting attributes I need.
end
Die Aktion erstellen bauen Userprofile durch einen Elternteil (hat-eine und gehört zu Verein)
def create
parent = Parent.create_guest
parent.build_user_profile(user_profile_params)
if parent.save
# do something
else
# handle error
end
end
Aufruf params in Userprofiles kehrt:
<ActionController::Parameters
{"age"=>"23",
"relations"=>"3",
"subdomain"=>"api",
"format"=>:json,
"controller"=>"api/v1/user_profiles",
"action"=>"create"}
permitted: false>
user_profile_params aufrufen, gibt diese:
user_profile_params:
Unpermitted parameters: subdomain, format
<ActionController::Parameters
{"age"=>"23",
"relations"=>"3", }
permitted: true>
Wenn eine Post-Anforderung kommt, erwarte ich die weißen Liste params in user_profile_params erstellen können user_profile verwenden. Stattdessen schlägt die create
Aktion in UserProfiles mit Fehler fehl: Unpermitted parameters: subdomain, format
.
Dies ist nicht, was ich erwartet habe. Ich habe erwartet, dass user_profile_params nur die zulässigen Werte enthält und alle anderen ignoriert.
Ich könnte hinzufügen :format
und :subdomain
Liste der zulässigen Attribute, aber etwas fühlt sich ein bisschen davon an.
Kann jemand erklären, was vor sich geht/was ich vermisse?
Es scheint mir, dass Sie diesen create-Block in Ihrem UsersProfileController nicht wirklich durchlaufen. –
@ChrisMoody: Nicht sicher, ich verstehe, was du meinst. Wenn Sie meinen, dass die Methode nicht aufgerufen wird, dann ist das nicht wahr. War in der Lage, in der UsersProfileController in die 'create' Aktion zu treten und stellte fest, dass ein Fehler auftritt, wenn' user_profile_params' in dieser speziellen Zeile 'parent.build_user_profile (user_profile_params)' aufgerufen wird. Kannst du erklären, was du meinst? – Uzzar