资源创建为累积请求的次数

时间:2015-03-09 14:43:10

标签: ruby-on-rails ajax ruby-on-rails-4

我有一个非常奇怪的错误。我有一个非常简单的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的东西。一个都没有。

我认为这里的相关问题是:自服务器启动以来,页面访问次数如何与创建的资源数量相关?

谢谢!

1 个答案:

答案 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。项目。