Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 4 从jbuilderjson中删除引号_Ruby On Rails 4_Jbuilder - Fatal编程技术网

Ruby on rails 4 从jbuilderjson中删除引号

Ruby on rails 4 从jbuilderjson中删除引号,ruby-on-rails-4,jbuilder,Ruby On Rails 4,Jbuilder,我是rails和jbuilder的新手,所以我不确定这是否可行。我正在使用这个自动完成jquery插件,它期望的响应格式是 { query:'Li', suggestions:['Liberia', 'Libyan Arab Jamahiriya', 'Liechtenstein', 'Lithuania'], data:['LR', 'LY', 'LI', 'LT'] } 当我尝试使用jbuilder返回json时,我将返回一个json对象,其中的键和值都包含在引号中

我是rails和jbuilder的新手,所以我不确定这是否可行。我正在使用这个自动完成jquery插件,它期望的响应格式是

{
    query:'Li',
    suggestions:['Liberia', 'Libyan Arab Jamahiriya', 'Liechtenstein', 'Lithuania'],
    data:['LR', 'LY', 'LI', 'LT']
}
当我尝试使用jbuilder返回json时,我将返回一个json对象,其中的键和值都包含在引号中,如

{"query":"Comp","suggestions":"['Test Company','Test Company 2','Test company','tester chester','before create test']","data":"['1','2','3','4','5']"}
这似乎是导致插件无法工作的原因,那么有没有办法从返回的json中删除双引号?下面是我的jbuilder文件的样子

suggestions = ""
data = ""

@companies.each do |company|
  suggestions += "'" + company.name + "',"
  data += "'" + company.id.to_s + "',"
end

json.query @query
json.suggestions "[" + suggestions[0...-1] + "]"
json.data "[" + data[0...-1] + "]"

谢谢

我找到了解决方案,或者是一个同事,我找到了;jbuilder代码已更改为此。我需要给json构建器一个数组,而不是创建一个字符串

suggestions = []
data = []

@companies.each do |company|
  suggestions.push(company.name)
  data.push(company.id)
end

json.query @query
json.suggestions suggestions
json.data data

将其作为答案发布并接受,不要害羞=