Ruby on rails:在Html.erb中使用<%=%>标记中的javascript变量

Sha*_*nak 8 javascript ruby-on-rails erb

我试图在<%=%>标签中使用插​​入Javascript变量,但它打印变量名称verbose.这是我的代码

<script>
     function getGraph(agency,device_id)
      {
            var i = document.createElement('img'); 
            i.src = '<%= show_graph_hcfcd_url('device_id') %>'; 
            $(graphDiv).appendChild(i); 
      }
</script>
Run Code Online (Sandbox Code Playgroud)

现在问题是URL生成得很好,除了而不是device_id的值,'device_id'出现在其余的url中.

任何线索如何克服这个?

mon*_*ike 9

<%= %> 将解释服务器上的代码

和javascript变量可在客户端上更改.这样做

<%= show_graph_hcfcd_url('device_id') %>
Run Code Online (Sandbox Code Playgroud)

可能不是这样做的正确方法.

您可能想要尝试将url(s)放在元素的数据属性中:

<div id="device_id" data-url="<%= show_graph_hcfcd_url(@device.id) %>">...</div>

<script>
     function getGraph(agency,device_id)
      {
            var i = document.createElement('img'); 
            i.src = $(device_id).data("url"); 
            $(graphDiv).appendChild(i); 
      }
</script>
Run Code Online (Sandbox Code Playgroud)

也看到了

http://railscasts.com/episodes/324-passing-data-to-javascript

这是一个很好的宝石,叫做"gon"