UsersProfileController имеет сильный Params, который выглядит примерно так:Сильный Params: params.permit возвращает Самовольную параметры несмотря белого список
def user_profile_params
params.permit(:age, :relations)
# yes, I am not requiring user_profile. Just permitting attributes I need.
end
создать действие строит UserProfile через родитель (имеет один-и принадлежит к ассоциации)
def create
parent = Parent.create_guest
parent.build_user_profile(user_profile_params)
if parent.save
# do something
else
# handle error
end
end
Вызывающие PARAMS в UserProfiles возвращается:
<ActionController::Parameters
{"age"=>"23",
"relations"=>"3",
"subdomain"=>"api",
"format"=>:json,
"controller"=>"api/v1/user_profiles",
"action"=>"create"}
permitted: false>
Вызов user_profile_params, возвращает это:
user_profile_params:
Unpermitted parameters: subdomain, format
<ActionController::Parameters
{"age"=>"23",
"relations"=>"3", }
permitted: true>
Когда запрос пост приходит, я ожидаю, чтобы быть в состоянии создать user_profile с помощью белого списка Params в user_profile_params. Вместо этого действие create
в UserProfiles выходит из строя с ошибкой: Unpermitted parameters: subdomain, format
.
Это не то, что я ожидал. Я ожидал, что user_profile_params будет включать только допустимые значения и игнорировать все остальные.
Я мог бы добавить :format
и :subdomain
в список разрешенных атрибутов, но что-то чувствует себя немного об этом.
Может кто-нибудь объяснить, что происходит/что мне не хватает?
Мне кажется, что вы не проходите через этот блок создания в своем UserProfileController. –
@ChrisMoody: Не уверен, что я понимаю, что вы имеете в виду. Если вы имеете в виду, что метод не вызван, то это неверно. Мог вступить в действие 'create' в UserProfileController и обнаружил, что ошибка возникает, когда' user_profile_params' вызывается в этой конкретной строке 'parent.build_user_profile (user_profile_params)'. Можете ли вы объяснить, что вы имеете в виду? – Uzzar