Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RubyonRails:在<;%%=%中使用javascript变量&燃气轮机;Html.erb中的标记_Javascript_Ruby On Rails_Erb - Fatal编程技术网

RubyonRails:在<;%%=%中使用javascript变量&燃气轮机;Html.erb中的标记

RubyonRails:在<;%%=%中使用javascript变量&燃气轮机;Html.erb中的标记,javascript,ruby-on-rails,erb,Javascript,Ruby On Rails,Erb,我试图在标记中插入一个Javascript变量,但它会详细打印变量名。这是我的密码 <script> function getGraph(agency,device_id) { var i = document.createElement('img'); i.src = '<%= show_graph_hcfcd_url('device_id') %>'; $(graphDi

我试图在标记中插入一个Javascript变量,但它会详细打印变量名。这是我的密码

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

函数getGraph(代理、设备\u id)
{
var i=document.createElement('img');
i、 src='';
$(图四)附加物(一);
}
现在的问题是URL生成得很好,除了在rest URL中出现“device\u id”而不是device\u id的值之外


有什么线索可以克服这个问题吗

以下是我目前解决这个问题的方法:

<script>
     function getGraph(agency,device_id)
      {

            var i = document.createElement('img'); 
            var url = '<%= show_graph_hcfcd_url('device_id') %>'; //new change
            url = url.replace('device_id',""+(device_id*1000));   //new change
            i.src = url;
            $(graphDiv).innerHTML = "";
            $(graphDiv).appendChild(i); 
      }
  </script>

函数getGraph(代理、设备\u id)
{
var i=document.createElement('img');
var url='';//新更改
url=url.replace('device_id',“”+(device_id*1000));//新更改
i、 src=url;
$(graphDiv.innerHTML=“”;
$(图四)附加物(一);
}
粗体的线条显示了我所做的。基本上用它的值替换了url中的“设备id”

但我仍然希望有一个更优雅的解决方案。

将解释服务器上的代码

并且javascript变量可在客户端上更改。这样做

<%= show_graph_hcfcd_url('device_id') %>

这可能不是正确的方法

您可能希望尝试将url放在元素的数据属性中:

<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>
。。。
函数getGraph(代理、设备\u id)
{
var i=document.createElement('img');
i、 src=$(设备id).data(“url”);
$(图四)附加物(一);
}
也看到


有一个很好的gem可以做到这一点,叫做“gon”

你能显示show\u graph\u hcfcd\u url的源代码吗?删除引号。如果它是一个字符串变量,您就不会用引号括起来。@Bryan Drewery:show_graph_hcfcd_url的代码是正确的,它可以工作。我已经分别测试了url。问题是生成正确的url。@Faresh:如果我删除这些引号,它会认为设备id是ruby变量,这是错误的。通过加引号,它将设备id详细地放在url中。现在,我正在使用javascript中的replace()函数将其替换为variable。我指的是围绕
的引号,我认为没有一个优雅的解决方案来解决这个问题。我的解决方案是用根url替换实际url,并附加路径和参数:
var url=“graph\u hcfcd/”+device\u id