Итак, у меня есть EmberJS и Rails API.
Я использую Active Model Serializer.
У меня есть следующая конфигурация инициализатора Active Model Serializer:
active_model_serializer.rb
ActiveModelSerializers.config.adapter = :json_api
api_mime_types = %W(
application/vnd.api+json
text/x-json
application/json
)
Mime::Type.register 'application/vnd.api+json', :json, api_mime_types
На данный момент мое приложение Ember может нормально извлекать данные из моего API Rails.
Однако у него возникают проблемы с отправкой обновленной информации о пользователе на мой сервер Rails.
Я получаю сообщение об ошибке в журнале сервера Rails:
Unpermitted parameters: data, id, user
Мой Ember, кажется, отправляет параметры:
{
"data"=>{
"id"=>"2",
"attributes"=>{
"first-name"=>"James",
"last-name"=>"Raynor",
"username"=>"Jimobo",
"email"=>"[email protected]",
"photo"=>{
"photo"=>{
"url"=>nil
}
}
},
"type"=>"users"
},
"id"=>"2",
"user"=>{
}
}
Примечание. Я изменил только имя пользователя с Jimo
на Jimobo
.
Когда я создавал свой Rails API, я использовал Active Model Serializer, и сильные параметры выглядели примерно так:
Сильные параметры
def user_params
params.permit(:first_name, :last_name, :username, :email, :password, :password_confirmation, :photo, friend_ids: [])
end
Мне действительно нужно пройти через каждое из моих сильных объявлений параметров и изменить их, чтобы они были такими:
params.require(:data).require(:attributes).permit(...);
Или есть какое-то волшебное решение, которое я делаю неправильно?
В этом обсуждении Github https://github.com/rails-api/active_model_serializers/issues/1027#issuecomment-126543577, пользователь по имени rmcsharry упомянул, что на самом деле ему не нужно ничего менять, и все заработало из коробки… хотя он не показал, как выглядели его сильные параметры.