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
Ruby on rails JavaScript正在我的Rails应用程序上秘密运行_Ruby On Rails - Fatal编程技术网

Ruby on rails JavaScript正在我的Rails应用程序上秘密运行

Ruby on rails JavaScript正在我的Rails应用程序上秘密运行,ruby-on-rails,Ruby On Rails,我在routes文件中的唯一一行是: root :to => 'spikes#index' 在Javascript资产中,我有一个简单的函数,如下所示: spike.js文件: $(function(){ alert("WAT"); document.write("abc"); }); <!DOCTYPE html> <html> <head> <title>D3Spike</title> <

我在routes文件中的唯一一行是:

root :to => 'spikes#index'
在Javascript资产中,我有一个简单的函数,如下所示:

spike.js文件:

$(function(){

    alert("WAT");
    document.write("abc");

});
<!DOCTYPE html>
<html>
<head>
  <title>D3Spike</title>
  <%= stylesheet_link_tag    "application", :media => "all" %>
  <%= javascript_include_tag "application" %>
  <%= csrf_meta_tags %>
</head>
<body>

<%= yield %>

</body>
</html>
在视图->尖峰->index.html.haml文件中,我什么都没有!它是空的。 我以前有以下代码,但我删除了它:

  = javascript_include_tag 'spike'
但当我运行Rails应用程序时,我仍然会看到浏览器上写着警告和“abc”

它是从哪里来的?到底是什么

更新:这也是我的application.html.erb文件:

$(function(){

    alert("WAT");
    document.write("abc");

});
<!DOCTYPE html>
<html>
<head>
  <title>D3Spike</title>
  <%= stylesheet_link_tag    "application", :media => "all" %>
  <%= javascript_include_tag "application" %>
  <%= csrf_meta_tags %>
</head>
<body>

<%= yield %>

</body>
</html>

D3Spike
“全部”%>

您可能在
app/views/layouts/application.html.erb
中有一个
标签(或者可能是
.haml
,而不是
.erb
),它会包装您的所有页面。如果你将其取出一秒钟,你可能会看到警报消失


有两件事需要理解:1)您向我们展示的JavaScript代码只是通过被包含(将其粘贴到浏览器的控制台中以了解我的意思)来运行的;2)在Rails中,正常的行为是所有JavaScript始终被包含,这可能不是你所期望的。

hmm我用那个文件的内容更新了我的问题。你看到里面有什么可疑的东西吗?谢谢。不,这很正常。取出
,保存文件并刷新页面。我还在回答中添加了一些可能对您有所帮助的细节。好的,谢谢,我从中取出了avascript\u include\u标记“应用程序”部分,是的,现在它没有被调用。但是现在在我的页面的haml中,我发布了这样一条消息:现在它应该调用什么?因为它没有:=javascript\u include\u标记'spike',我不会将javascript include放在单独的页面上。我会坚持Rails的默认设置,即在
application.html.erb
中有一个
javascript\u include\u标记
,并使它只在需要的地方调用javascript。