&引用;未捕获的语法错误:意外标记<&引用;在Javascript中尝试使用Rails数组的内容时
在Rails 5中,我想在Javascript中使用Rails数组的内容: 在“我的硬盘”\u controller.rb中:&引用;未捕获的语法错误:意外标记<&引用;在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 &
@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