如何在脚本中的link_to标记内部使用javascript变量?

如何在脚本中的link_to标记内部使用javascript变量?,javascript,html,ruby-on-rails,Javascript,Html,Ruby On Rails,我试图创建一个链接,将一些变量传递到另一个页面,问题是我需要通过javascript来实现这一点。以下是我的javascript变量: data.forEach(function(i) { var html = '<div><%= link_to "", "/campaigns/new", :method => :get, area: i.id %></div>'; }); data.forEach(函数(i){ var html=':get,区

我试图创建一个链接,将一些变量传递到另一个页面,问题是我需要通过javascript来实现这一点。以下是我的javascript变量:

data.forEach(function(i) {

  var html = '<div><%= link_to "", "/campaigns/new", :method => :get, area: i.id %></div>';
});
data.forEach(函数(i){
var html=':get,区域:i.id%>';
});
这里出现的问题是
i.id
抛出一个语法错误,因为它认为
i
是一个ruby变量


我如何告诉它使用
I
作为javascript变量?

下面的ruby代码甚至在javascript执行之前就执行了

<%= link_to "", "/campaigns/new", :method => :get, area: i.id %>

要严格回答您的问题,您可以这样做:

data.forEach(function(i) {
  var html = '<div><a href="/campaigns/new" area="' + i.id + '"></a></div>';
});
data.forEach(函数(i){
var html='';
});

但通常更好的做法是将数据存储为元素上的数据属性,并通过调用
element.data(“area”)

什么在JS代码中检索它们?您想在以后执行的JavaScript中使用ruby代码吗?您需要记住,rails代码在服务器上运行,只生成一组文本,稍后在用户浏览器中显示(在JavaScript中执行)。因此,您可以使用rails代码来创建一些javascript,但是rails代码不会出现在javascript运行时:只是您生成的任何javascript和html?
data
是一个javascript变量吗?@MaxWilliams data是产品,而我是一个包含一些信息的产品。因此,当我点击链接时,我需要该产品的id在另一个页面上可用,以便我可以预设一些选项。我本来会做得不一样的,但我之前的人做得很糟糕,所以现在我的手有点被绑住了……嗯。。我想我将不得不使用url参数来解决这个问题。或者有没有不使用本地存储的解决方法?@Chrillewoodz最好使用
localStorage
。您有解决方案吗?还是希望我为您编写代码?实际上从未使用过它,因此如果您需要,可以发布解决方案,我会接受答案。@Chrillewoodz您能告诉我您想要的最终HTML吗?我坚信你需要AJAX来进行调用。使用参数似乎是一个可行的解决方案,所以我想这就是解决方法。谢谢你的帮助,格拉茨快到6万了。
data.forEach(function(i) {
  var html = '<div><a href="/campaigns/new" area="' + i.id + '"></a></div>';
});