2016-09-15 5 views
0

Я создаю новое приложение api через Ruby on Rails. Так что я использую Devise для управления таблицей моих пользователей.Невозможно создать новую запись пользователя на Rails api через Postman

Проблема, когда я проверяю api, отправив запрос через Postman, он не может пройти проверку модели.

Так что это мой контроллер

class UsersController < ApplicationController 

    respond_to :json 

    def create 
    user = User.new(user_params) 
    if user.save 
     render json: user, status: 201, location: [:my, user] 
    else 
     render json: { errors: user.errors }, status: 422 
    end 
    end 

    private 

    def user_params 
    params.require(:user).permit(:email, :password, :password_confirmation,:username,:fullname,:grade) 
    end 

end 

Это данные, которые я отправить на сервер с помощью Почтальон

{ 
    "user" : { 
     "email": "[email protected]", 
     "password": "123456", 
     "password_confirmation": "123456", 
     "username": "yofoyf", 
     "fullname": "narotuo sarp", 
     "grade": "aaa" 
    } 
} 

И я также установить заголовок быть приложения/JSON как этот

enter image description here

Но когда я нажимаю отправить, я получил ошибки, потому что это не может передать мое подтверждение как этот

Sign up 

3 errors prohibited this user from being saved: 

Username can't be blank 
Grade can't be blank 
Fullname can't be blank 

Это моя модель

class User < ActiveRecord::Base 
    # Include default devise modules. Others available are: 
    # :confirmable, :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 

    validates :username, presence: true ,uniqueness: true 
    validates :grade, presence: true 
    validates :fullname, presence: true 

end 

Так как я могу сделать Почтальон работает? Кажется, сервер не может прочитать мое имя пользователя, имя и запись.

Спасибо!

+0

Вы пытались отправить пользователя как объект JSON на внешнем уровне? – Adam

+0

Задайте параметры в разделе тела почтальона, как этот пользователь [: email] значение – Navin

+0

@AdamRosini есть ли у вас пример? – user3403614

ответ

0

Вы должны послать параметр в разделе тела почтальона один за другими, как сильфон

user[:email] "[email protected]" // then in next line 
user[:password] 123456 

для каждой записи вы должны передать параметр с новым запросом и нажмите на кнопку отправить

+0

Я передаю данные внутри тела через данные формы, как то, что вы делали, но оно все еще не работает. Я получил 'ActionDispatch :: ParamsParser :: ParseError' – user3403614

0

Попробуйте разместить свой пользователь например:

{ 
    "email": "[email protected]", 
    "password": "123456", 
    "password_confirmation": "123456", 
    "username": "yofoyf", 
    "fullname": "narotuo sarp", 
    "grade": "aaa" 
} 
+0

Не работает, похоже, это необходимо: пользователь для разрешения на проезд. – user3403614

Смежные вопросы