Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.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 带有JSON请求的强参数_Ruby On Rails_Json_Ruby On Rails 5_Strong Parameters - Fatal编程技术网

Ruby on rails 带有JSON请求的强参数

Ruby on rails 带有JSON请求的强参数,ruby-on-rails,json,ruby-on-rails-5,strong-parameters,Ruby On Rails,Json,Ruby On Rails 5,Strong Parameters,我认为如果请求被识别为JSON,Rails会自动识别/解析JSON参数。但请求如下: Processing by Api::V1::LinksController#create as JSON Parameters: {"link"=>"{\"title\":\"My first title\"}"} 和以下参数方法: def link_params params.require(:link).permit(:title) end 导致此错误的原因: NoMethodError(未

我认为如果请求被识别为JSON,Rails会自动识别/解析JSON参数。但请求如下:

Processing by Api::V1::LinksController#create as JSON
Parameters: {"link"=>"{\"title\":\"My first title\"}"}
和以下参数方法:

def link_params
  params.require(:link).permit(:title)
end
导致此错误的原因:

NoMethodError(未定义的“{\”title\:\“My first title\”}”方法'permit':字符串):

任何关于如何让强params+json工作的想法都将不胜感激

更新

下面是发出请求的代码(使用http客户端):

根据文件


参数:
替换为
数据:

这似乎不是json正文,而是字符串。尝试使用类型为
application/json
POST
raw body
来执行请求。应该可以。请显示向Rails后端发出请求的代码。您是否尝试解析JSON?JSON.parse(params)这将提供正确的JSON格式,而不是使用发出请求的代码更新字符串。根据文档,将
params:
替换为
数据:
。这有区别吗?
axios({
  method: 'post',
  url: '/api/v1/links.json',
  responseType: 'json',
  params: {
    link: {
      title: "My first title"
    }
  },
})
.then( (response) => {
});
axios({
  method: 'post',
  url: '/user/12345',
  data: {
    firstName: 'Fred',
    lastName: 'Flintstone'
  }
});