每个请求多次调用Rails操作

时间:2017-08-31 20:32:52

标签: ruby-on-rails ruby controller action

我有一个控制器操作,每个浏览器请求被调用三次。有任何想法吗? config/routes.rbapplication_controller.rb非常简单。

以下代码,

config/routes.rb

Rails.application.routes.draw do
    root 'tiles#index'

+

controllers/tiles_controller.rb

class TilesController < ApplicationController
def index
  puts "this line prints three times in the console per request"
end

+

tiles/index.html.erb
<% if notice %>
  <p id="notice"><%= notice %></p>
<% end %>

<div id="tiles">
  <%= render "tile", tile: { type: "sam", id: "0" } %>
  <%= render "tile", tile: { type: "inputs", id: "1" } %>
  <%= render collection: @tiles, partial: "tile" %>
  <%= render "tile", tile: { type: "social", id: "1000" } %>
</div>

+

这是控制台日志:

log/development.log
Started GET "/" for 127.0.0.1 at 2017-08-31 16:56:28 -0400
Processing by TilesController#index as HTML
Started GET "/" for 127.0.0.1 at 2017-08-31 16:56:28 -0400
Processing by TilesController#index as HTML
  [1m[36mProject Load (0.5ms)[0m  [1m[34mSELECT  "projects".* FROM "projects" ORDER BY "projects"."launch_date" ASC LIMIT $1[0m  [["LIMIT", 10]]
  [1m[36mProject Load (9.1ms)[0m  [1m[34mSELECT  "projects".* FROM "projects" ORDER BY "projects"."launch_date" ASC LIMIT $1[0m  [["LIMIT", 10]]
  Rendering tiles/index.html.erb within layouts/application
  Rendered tiles/_tile_sam.html.erb (0.3ms)
  Rendered tiles/_tile.html.erb (8.0ms)
  Rendering tiles/index.html.erb within layouts/application
  Rendered tiles/_tile_sam.html.erb (0.0ms)
  Rendered tiles/_tile.html.erb (0.9ms)
  Rendered tiles/_tile_instagram.html.erb (12.6ms)  
  ...
  Rendered tiles/_tile_twitter.html.erb (0.5ms)
  Rendered collection of tiles/_tile.html.erb [48 times] (125.9ms)
  Rendered tiles/_tile_project.html.erb (0.1ms)
  Rendered tiles/_tile_social.html.erb (0.6ms)
  Rendered tiles/_tile.html.erb (2.7ms)
  Rendered tiles/index.html.erb within layouts/application (166.1ms)
  Rendered tiles/_tile_twitter.html.erb (0.6ms)
  ...
  Rendered collection of tiles/_tile.html.erb [48 times] (158.5ms)
  Rendered tiles/_tile_social.html.erb (0.1ms)
  Rendered tiles/_tile.html.erb (1.0ms)
  Rendered tiles/index.html.erb within layouts/application (165.3ms)
Completed 200 OK in 1310ms (Views: 217.1ms | ActiveRecord: 9.1ms)


Completed 200 OK in 1325ms (Views: 204.5ms | ActiveRecord: 0.5ms)

帮助!

1 个答案:

答案 0 :(得分:1)

WOW

最后通过逐行删除与此操作/视图相关的代码来解决这个问题。基本上,我正在使用空img字段生成一些src标记。显然这导致许多现代浏览器多次加载网站,可能是为了寻找丢失的图像或假设根URL是图像本身?

发现此处引用的行为:

https://forums.asp.net/t/1804472.aspx?Bizzare+safari+thing+two+page+loads+for+each+page+

page loads twice in Google chrome