我有一个非常奇怪的错误。我有一个非常简单的Rails 4.2应用程序,我刚刚开始添加一些JavaScript功能。我首先在表单中添加remote: true
选项,但之后在数据库中创建了多个资源。但是,似乎有一个标准,并且创建的资源数量等于自服务器启动以来访问的页面总数。所以:
rails s
并刷新/new
页面,将创建1个资源。
现在访问第1页,第2页,第3页,然后返回/new
并提交,并创建4个资源。
现在访问第6页第5页,返回/new
并提交,并创建7个资源。
正如我所提到的,我刚刚开始使用JS,并且只有另一个与此无关的脚本(如果删除此文件并重新启动服务器,则仍会出现错误)。
仅供参考,我已经创建了一个新的Rails应用程序并将remote: true
放到表单中,显然,这种情况并没有发生,所以有些东西搞乱我的应用程序。
我甚至不知道如何研究这个。关于我应该从哪里开始看的任何线索?
编辑:我试图在测试中重现相同的情况,使用Capybara并在填写表单之前进行多次页面访问,但我不能。
的application.js
//= require jquery2
//= require jquery_ujs
//= require turbolinks
//= require_tree .
布局/ application.html.erb
将其移至文件末尾并添加cache: true
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true, cache: true %>
</body>
</html>
再说一遍:应用程序中只有一个脚本,我已将其删除。任何地方都没有JS的东西。一个都没有。
我认为这里的相关问题是:自服务器启动以来,页面访问次数如何与创建的资源数量相关?
谢谢!
答案 0 :(得分:0)
我还不敢相信。这一切都是因为:
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true, cache: true %>
</body>
</html>
我必须将javascript标记重新放回到<head>
标记内的原始位置。
<head>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true, cache: true %>
</head>
不要问我原因,但是将javascript文件放在文件的底部会导致所有这些混乱。
编辑:
原来这与Turbolinks有关。 删除Turbolinks解决了这个问题,我可以再次在文档末尾加载所有JS。在Turbolinks上查看this问题,在某人&#39;上查看this。项目。