Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.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
Rails ERB包含Javascript_Javascript_Ruby On Rails - Fatal编程技术网

Rails ERB包含Javascript

Rails ERB包含Javascript,javascript,ruby-on-rails,Javascript,Ruby On Rails,我是Rails新手,遇到了一个问题,需要在ERB文件中添加一些Javascript。比如说, <script> function init() { .... } </script> <% @list.each do |l| %> .... <% end %> 在模板中,我有另一个脚本来检查函数init是否存在,它将在页面加载完成后执行 当我在测试服务器上尝试它时,init无法执行。我从Web浏览器中检查了页

我是Rails新手,遇到了一个问题,需要在ERB文件中添加一些Javascript。比如说,

<script>
    function init() {
        ....
    }
</script>

<% @list.each do |l| %>
   ....
<% end %>
在模板中,我有另一个脚本来检查函数init是否存在,它将在页面加载完成后执行

当我在测试服务器上尝试它时,init无法执行。我从Web浏览器中检查了页面源。。。缺了一部分。如果通过单击Web浏览器上的“重新加载”按钮重新加载页面,该部分将再次显示

我试图改变一些东西,比如HTML中对象的类,它可以在ERB文件保存后正确更新,但只有javascript在页面首次加载时无法加载,需要单击从浏览器重新加载页面

我想知道是Rails的缓存问题还是我弄错了什么?我目前正在Mac上使用Rails 4.2.1


谢谢大家!

如果只需要将一些变量从erb传输到javascript,那么可以在该页面的特殊标记上使用隐藏字段或属性。所以我确信,除非必须包含一些第三方javascript,否则实际上不需要在erb文件中使用脚本标记

我很确定您的问题出现了,因为您使用的是自动集成的TurboLink

TurboLink将评估它访问的页面中的任何脚本标记,如果这些标记没有类型或者类型是text/javascript。将忽略所有其他脚本标记

发件人:


您可以从Gemfile中删除它们,捆绑并重试,以伪造我的假设,或者只是将类型包含到脚本标记中。

出于调试原因:在javascript中的application.html.erb文件中,include标记切换数据turbolinks track为false。然后再试一次,我需要在ERB文件中加入一些Javascript,如果你需要在视图中加入Javascript,那就意味着其他地方出了问题。所以标准问题是:为什么需要它?我使用Javascript初始化页面的组件。例如,我在一些Textarea字段上使用Tinymce进行编辑。因此,我需要在每个页面上使用Javascript来初始化组件。