在rails上的.js.erb文件中的Ruby数组到js数组

时间:2016-01-18 00:32:07

标签: javascript jquery ruby-on-rails arrays ruby-on-rails-4

我正在尝试将ruby数组转换为js.erb文件中的js数组。我已经在堆栈溢出中检查了所有这些问题,但它对我不起作用。

这是函数

  function c(c) {
   js_array = <%= raw @keys.to_json %>;
   b.selection.remove(), b.html.insert('js_array[0]');
    }

抛出错误Uncaught TypeError: Cannot read property '0' of null

我还在学习js所以我不确定这里出了什么问题

ruby​​ @keys数组肯定有数据,因为我在同一页面上打印它。

如果我将数组更改为js_array = ['gwfe', 'efw', 'efwe'];,它可以正常工作。这让我相信在尝试将ruby数组转换为js数组时会出现问题。

2 个答案:

答案 0 :(得分:1)

我假设您从db或本地获取@keys数据。您可以尝试gon gem将值从ruby传递给js。以下是相同的railscast教程:http://railscasts.com/episodes/324-passing-data-to-javascript?view=asciicast

看看,如果可行的话。

让我知道。

答案 1 :(得分:0)

将数组转换为 JSON 后,您只需要将其标记为 HTML 安全,以便呈现 Javascript 代码。

这样做就行了:

<%= @keys.to_json.html_safe %>