我正在尝试将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数组时会出现问题。
答案 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 %>