Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails 5.2如何在控制器中获取表单数据值_Ruby On Rails_Ruby_Ruby On Rails 5 - Fatal编程技术网

Ruby on rails rails 5.2如何在控制器中获取表单数据值

Ruby on rails rails 5.2如何在控制器中获取表单数据值,ruby-on-rails,ruby,ruby-on-rails-5,Ruby On Rails,Ruby,Ruby On Rails 5,我有一个简单的HTML表单,我正在使用FetchAPI和FormData向我的服务器发送一些数据 我正在将role和user\u id及其值发送到服务器。在控制器中,当我打印params时,我得到: {“-------------------------------------119083373100970968837505639\r\n内容处理:表单数据;名称“=>”\“角色\”\r\n\r\nadmin\r\n-----------------------------------------

我有一个简单的HTML表单,我正在使用FetchAPI和FormData向我的服务器发送一些数据

我正在将
role
user\u id
及其值发送到服务器。在控制器中,当我打印
params
时,我得到:

{“-------------------------------------119083373100970968837505639\r\n内容处理:表单数据;名称“=>”\“角色\”\r\n\r\nadmin\r\n-------------------------------------------119083373100970968837505639\r\n内容处理:表单数据;名称=\“用户id\”\r\n\r\n1\r\n------------------------------119083373100970968837505639\r\n,“控制器”=>“用户”、“操作”=>“updaterole”,“id”=>“1”}

如何从中访问并获取
角色
用户id

这是我在客户端的脚本:

var form = document.querySelector("#roleForm");
var formdata = new FormData(form);

fetch(url, {
    method: "PATCH",
    headers: { 'Content-Type':'multipart/form-data' },
    body: formdata,
}).then(
    response => response.text() // .json(), etc.
    // same as function(response) {return response.text();}
).then(
    html => {
        console.log(html)
    }
);

在我的情况下,评论中经常提到,我们的主体是不正确的。
我通过删除
标题:{'Content-Type':'multipart/form-data'},
form-fetch-request.解决了这个问题。。看起来我们不需要在标题中添加内容类型。无论如何,我的问题解决了。

你能打印你在服务器上看到的
params
的值吗?在发布你的问题时,它似乎丢失了。。当我在控制台中打印参数时,{“--------------------------------------119083373100970968837505639\r\n内容配置:表单数据;名称“=>”\“角色\”\r\n\r\nadmin\r\n--------------------------------------119083373100970968837505639\r\n内容配置:表单数据;名称=\“用户id”\“\r\n\r\n1\r\n--------------------11908337310097096988837505639--\r\n”,“controller”=>“users”,“action”=>“updaterole”,“id”=>“1”}hmmm看起来正文不对,请尝试手动创建formdata对象(
formdata=new formdata();data.append('role',selected\u role);data.append('user\u id',userid)
)只是为了使内容更明确如果您没有文件上载,请尝试将json有效负载发送到服务器。但是您需要将内容类型更改为
application/json
。是的,感谢所有人的帮助…我刚刚删除了fetch请求中的标题(标题:{'content type':'multipart/form data'),现在我的问题已得到解决