У меня есть следующий в моих Регистрациях контроллере:Принять JSON в Rails контроллере, когда неверный формат
class Api::V1::RegistrationsController < ApplicationController
skip_before_filter :verify_authenticity_token
respond_to :json
def create
user = User.new(params[user_params])
if user.save
render :json => user.as_json(:auth_token=>user.authentication_token, :email=>user.email), :status=>201
return
else
warden.custom_failure!
render :json => user.errors, :status=>422
end
end
def user_params
params.require(:user).permit(:email, :password, :name, :phone, :acknowledgement)
end
end
Я понимаю, что это ожидает, что моя JSON, чтобы быть в форме
{user:{email:[email protected],name:"anotheruser"}}
Однако JSON является отправляется как
{email:[email protected], name:"anotheruser"}
Я не знаю, как настроить таргетинг на эти параметры. Каков синтаксис для этого? Кроме того, есть ли специальный способ обработки этого формата?
С этим кодом я получаю параметр не найден: пользователь –
Проверьте мое обновление. Сначала я неправильно понял этот вопрос. Я думал, что у вас возникли проблемы с доступом к хешу внутри хэша. Теперь я вижу, что у вас просто хэш, а не хэш хешей. Не ожидайте хеш хэшей, если у вас есть хэш. Вы получили то, что вы сделали, потому что require (: user) не нашел: пользовательский ключ, и это поддерживается json, который вы говорите, что вы действительно получаете. – josiah
, если вы думаете, что иногда можете получить хэш хэшей с пользователем: ключ, то вы можете сделать что-то вроде ... if params.present? если PARAMS [:] Количество PARAMS [: пользователь] .permit (...) еще params.permit (...) конца конца – josiah