我正在处理 Ruby on Rails 和 JavaScript。
主要的基本思想是我在模型的类函数中创建一个对象,并在 JavaScript 中调用这个函数。那里的问题是HTML 实体被编码的任何地方。
现在详细说明:
在我的模型函数getData(firstOpt, secondOpt, amount)
中,我创建了一个如下所示的对象(当我在 ruby 控制台中调用该函数时):
[#<JobCompact build_compact_id: 324>, #<JobCompact build_compact_id: 325>, #<JobCompact build_compact_id: 325>]
现在我将它放入一个数组中(因为我想稍后在该数组中有更多条目)在第一个位置:
data[0] = firstLang
(注意:我也试过 -> data[0] = firstLang.to_json)
最后我只返回数组数据。现在我在 JavaScript 中调用该函数:
var curData = <%= BuildCompact.getData("ruby", "rubinius", 15) %>;
错误是:Uncaught SyntaxError: Unexpected token ILLEGAL
因为它将我的 ruby 函数结果转换为:var curData = [[#<JobCompact id: 841, language: "ruby", version: "1.609481891837258"
etc。
我还尝试解码结果:
var curData = htmlentities((<%= BuildCompact.getData("ruby", "rubinius", 15) %>).toString());
还有许多其他变体,但我无法弄清楚。有没有人遇到过类似的问题?
注意:我希望该帖子不是重复的,因为我不知道在哪里编码(在 Ruby 或 Javascript 中)。