我正在使用前端的React和后端的Rails 5创建一个新的分布式应用程序。我是Rails的新手,所以我无法为遇到的问题找到解决方案。
问题在于,Rails控制器中的params var不包括React前端在POST请求中发送的变量。
它给我以下错误:
ActionController :: ParameterMissing(缺少参数或值为 空:用户):
这是在Rails控制器中由以下行生成的:
params.require(:user).permit(:name, :cnpj, :email)
这是fetch发出的POST请求的正文(参数):
user: {
cnpj: '1231412',
email: 'henio@hen.io',
name: 'henio'
}
与前端相关的代码:
export const post = async (resource, data) => {
try{
const url = `${apiBase}/${resource}`;
const response = await fetch(url, {
method: 'POST',
mode: 'cors',
cache: 'no-cache',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data),
});
if (!response.ok) return false;
return await response.json();
}catch(e){
console.log(e);
return false;
}
}
const res = await post(apiResourse,{ user, });
这是在控制器内部的user_params方法中打印的params对象:
{"controller"=>"api/v1/users", "action"=>"create"}
那是什么意思?