Я пытаюсь создать простое действие в контроллере rails, которое будет действовать как API.
В этом случае я пытаюсь запустить create, когда клиент публикует строку в кодировке json.
Прямо сейчас у меня это работает так:
def create
@user = User.new.from_json(params[:user])
respond_to do |format|
if @user.save
format.json { render json: @user, status: :created, location: @user }
else
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
Мне не нравится, как я зависим от вызова to_json для создания. Прямо сейчас я отвечаю только на полезную нагрузку json, но если мы решим расширить ее до xml, этот код нарушится.
Есть ли более чистый способ создания нового пользователя из данных, опубликованных в формате json?
Я попытался просто передать params [: user] (который является строкой json) в User.new, но получил ошибки.
Для справки мой JSON выглядит так:
{"email":"email.address@gmail.com","password":"password"}