2012-07-07 108 views
2

我的应用程序基于Rails 3.2.2.面对一些奇怪的问题:开发/生产中的所有操作都被调用两次。有什么建议么?Rails 3.2.2操作被调用两次

Started GET "/faqs" for 127.0.0.1 at 2012-07-07 17:08:06 +0200 
Processing by FaqsController#index as HTML 
    Faq Load (0.5ms) SELECT `faqs`.* FROM `faqs` WHERE `faqs`.`active` = 1 ORDER BY position asc 
    Rendered faqs/index.html.haml within layouts/application (3.1ms) 
    Rendered shared/_navigation_bar.html.haml (5.3ms) 
    Rendered devise/registrations/_register.html.erb (5.5ms) 
Completed 200 OK in 137ms (Views: 43.3ms | ActiveRecord: 0.5ms | Solr: 0.0ms) 


Started GET "/faqs" for 127.0.0.1 at 2012-07-07 17:08:06 +0200 
Processing by FaqsController#index as */* 
    Faq Load (0.2ms) SELECT `faqs`.* FROM `faqs` WHERE `faqs`.`active` = 1 ORDER BY position asc 
    Rendered faqs/index.html.haml within layouts/application (0.2ms) 
    Rendered shared/_navigation_bar.html.haml (3.9ms) 
    Rendered devise/registrations/_register.html.erb (12.1ms) 
Completed 200 OK in 33ms (Views: 30.2ms | ActiveRecord: 0.2ms | Solr: 0.0ms) 

更新#1

简单的控制器:

class FaqsController < ApplicationController 
    respond_to :html 

    def index 
    @faqs = Faq.all 
    respond_with(@faqs) 
    end 
end 

观很简单太:

%h2 Faqs 
- @faqs.each_with_index do |faq, index| 
    .span9 
    %h3 
     = "%d." % (index + 1) 
     = faq.title 
    %p= faq.body 
+1

看起来可能是jquery-rails。在你的浏览器中拉一个检查员,看看你是否在做一些AJAX-ey的事情。 – 2012-07-07 16:40:45

+0

这些请求适用于不同的MIME类型:'FaqsController#index as HTML'和'FaqsController#index */*'。这个世界如何?! – Zabba 2012-07-07 18:14:35

+0

@DeanBrundage AJAX没有提出任何请求。 c – Maestro 2012-07-07 20:40:12

回答

0

这个问题可能没有anyt与Rails 3.2.2合作。

如果您的页面上有加载页面时发出ajax请求的JavaScript,则会显示此确切行为。我会遍历所有的脚本资源,并在加载页面后查找一个用于回叫您的应用程序的资源。你可能会在那里找到罪魁祸首。

2

这可能是由于Chrome。您可以在Safari/Firefox/IE等测试

我相信它会导致两次加载的原因是因为Chrome“分岔”的请求,基本上提出两个请求。它呈现出第一个返回窗口。

IIRC我在很多年前就研究过这个功能,这是一个实现页面更快显示的功能。