Пустые параметры при запросе POST к Rails 4 API

Я только начал кодировать на Rails, чтобы создать API, и я уже наткнулся на стену. Я пытаюсь создать пользователя с помощью запроса POST. Вот мой пользовательский контроллер, созданный с помощью команды scaffold:

def create
@user = User.new(params[:user])

logger.info(@user.to_json)

if @user.save
 render json: @user, status: :created, location: @user

else
  render json: @user.errors, status: :unprocessable_entity
end

конец

Модель пользователя имеет только одну проверку validates :name, presence: true, и она продолжает давать сбой, потому что, по-видимому, параметры всегда пусты. Чтобы проверить звонки, я использую Postman - REST Client в Chrome, а URL-адрес, который я нажимаю, - http://localhost:3000/users. Я не уверен, что я делаю ужасно неправильно. Такая же настройка с формой и http работает нормально.

Я пробовал отформатировать объект JSON разными способами, но ничего не работает. Пока что я использовал:

  1. {"user": {"name": "test"}}
  2. {{"name": "test"}}

person user1844566    schedule 17.03.2014    source источник


Ответы (1)


Это потому, что он не позволяет этому пройти. Представлен Rails 4 strong parameters

Вы можете использовать соседний метод и вызвать его.

def create
  @user = User.new(user_params)

  logger.info(@user.to_json)

  if @user.save
    render json: @user, status: :created, location: @user
  else
    render json: @user.errors, status: :unprocessable_entity
  end
end

...
private
def user_params
  params.require(:user).permit(:field1, :field2)
end
person ddavison    schedule 17.03.2014