代码之家  ›  专栏  ›  技术社区  ›  Trinity76

尝试在Javascript中使用Rails数组的内容时出现“uncaughtsyntaxerror:Unexpected token<”

  •  1
  • Trinity76  · 技术社区  · 7 年前

    在我的硬盘里_控制器.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
    

    我试图实现将Rails的@harddisk\u locations的内容加载到Javascript的harddisk\u位置:

    var harddisk_locations = [<%= raw @harddisk_locations.to_json %>];
    

    未捕获的语法错误:意外的标记<

    我想Javascript是在抱怨

    <

    刚好在…之后

    [

    2 回复  |  直到 7 年前
        1
  •  3
  •   Igor Drozdov    7 年前

    js . 所以你需要重新命名 application.js application.js.erb .

    var harddisk_locations = ["<%= somestring %>"];
    

    如果是你的话,我想, raw @harddisk_locations.to_json 是有效的json,因此不需要引号。

        2
  •  2
  •   Ravi Teja Dandu    7 年前

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

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