从前端请求到后端请求的参数缺失。

问题描述 投票:0回答:1

我目前收到这个错误。

ActionController::ParameterMissing in UsersController#create
param is missing or the value is empty: first_name

我正试图用Rails后端API创建一个用户记录。我正在用强参数过滤请求,比如说

def create
  user = User.new(user_params)
  ...
end

def user_params
  params.require([:first_name, :last_name, :email, :password])
end

在我的前端,我正在进行这种类型的请求。我用下面的snipper仔细检查了一下,确保我试图发送的对象是这样的。

data:

{
  "first_name": "asdasd",
  "last_name": "asdasd",
  "email": "[email protected]",
  "password": "password"
}

snippet:

  const response = await fetch(url, {
    method: "POST",
    body: JSON.stringify({
      first_name,
      last_name,
      email,
      password,
    }),
  });
javascript ruby-on-rails ruby ecmascript-6 strong-parameters
1个回答
1
投票

嘿,代码看起来不错,我,但我会尝试定义的内容类型json与属性的头

  const response = await fetch(url, {
    method: "POST",
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      first_name,
      last_name,
      email,
      password,
    }),
  });

我对fetch还不是很熟悉,但往往当你指定内容类型时,就会有黑魔法在作祟

© www.soinside.com 2019 - 2024. All rights reserved.