Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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
&引用;未捕获的语法错误:意外标记<&引用;在Javascript中尝试使用Rails数组的内容时_Javascript_Ruby On Rails - Fatal编程技术网

&引用;未捕获的语法错误:意外标记<&引用;在Javascript中尝试使用Rails数组的内容时

&引用;未捕获的语法错误:意外标记<&引用;在Javascript中尝试使用Rails数组的内容时,javascript,ruby-on-rails,Javascript,Ruby On Rails,在Rails 5中,我想在Javascript中使用Rails数组的内容: 在“我的硬盘”\u controller.rb中: @locations = Harddisk.select(:location).distinct # grab a collection of distinct harddisk locations objects @harddisk_locations = [] @locations.each do |location| @harddisk_locations &

在Rails 5中,我想在Javascript中使用Rails数组的内容:

在“我的硬盘”\u controller.rb中:

@locations = Harddisk.select(:location).distinct # grab a collection of distinct harddisk locations objects
@harddisk_locations = []
@locations.each do |location|
  @harddisk_locations << location.location # put only the location names into an array
end
@locations=Harddisk.选择(:location).distinct#获取不同硬盘位置对象的集合
@硬盘位置=[]
@位置。每个do |位置|

@硬盘位置问题是您对
js
使用的语法无效。这就是为什么需要将
application.js
重命名为
application.js.erb

请注意,如果要向erb中插入字符串,则需要使用引号:

var harddisk_locations = ["<%= somestring %>"];
var硬盘位置=[“”];

在您的情况下,我想,
raw@harddisk\u locations.to\u json
是一个有效的json,因此不需要引号。

问题是您对
js
使用了无效的语法。这就是为什么需要将
application.js
重命名为
application.js.erb

请注意,如果要向erb中插入字符串,则需要使用引号:

var harddisk_locations = ["<%= somestring %>"];
var硬盘位置=[“”];

在您的情况下,我猜,
raw@harddisk\u locations.to\u json
是一个有效的json,因此不需要引号。

您在.js文件中使用的是ERB语法。更好的解决方案是创建一个新的.js.erb文件,并在该文件中添加所需的代码


关于代码的建议,您可以使用
@harddisk\u locations=harddisk.select(:location).distinct.map(&:location)

替换现有代码。您正在.js文件中使用ERB语法。更好的解决方案是创建一个新的.js.erb文件,并在该文件中添加所需的代码


关于代码的建议,您可以将现有代码替换为
@harddisk\u locations=harddisk.select(:location).distinct.map(&:location)

如果
raw@harddisk\u locations.to\u json
包含一个有效的json格式字符串,那么该语句不是无效的,只是想知道将
harddisk\u locations
定义为数组是必要的吗?我的意思是,
@harddisk\u locations
已经是一个数组了。严格来说,@harddisk\u locations是一个除位置之外还有很多其他属性的散列。如果
原始@harddisk\u locations.to\u json
包含一个有效的json格式字符串,那么该语句就不是无效的,只是想知道将
harddisk\u locations
定义为数组是必需的吗?我的意思是,
@harddisk\u locations
已经是一个数组了。严格地说,@harddisk\u locations是一个除位置之外还有许多其他属性的散列。查看源代码并查看
var harddisk\u locations=[]呈现为查看源代码,并查看
var硬盘位置=[]
渲染更简单:
@harddisk\u locations=harddisk.pulk(:location).uniq
更简单:
@harddisk\u locations=harddisk.pulk(:location).uniq