2010-07-16 7 views
8

Ho un'app Rails che genera richieste duplicate per ogni richiesta in fase di sviluppo. L'app esegue Rails 2.3.5 con il mio computer di sviluppo principale che esegue Ubuntu 10.4. Tuttavia, lo stesso codice funziona correttamente senza mostrare richieste duplicate sul mio sistema OS X 10.6. Funziona anche in modalità Produzione su entrambe le macchine senza problemi.Richieste duplicate di registrazione app di Rails

Processing DashboardController#index (for 127.0.0.1 at 2010-07-16 10:23:08) [GET] 
    Parameters: {"action"=>"index", "controller"=>"dashboard"} 
Rendering template within layouts/application 
Rendering dashboard/index 
    Term Load (1.9ms) SELECT * FROM "date_ranges" WHERE ('2010-07-16' BETWEEN begin_date and end_date) AND (("date_ranges"."type" = 'Term')) 
    StaticData Load (1.1ms) SELECT * FROM "static_data" WHERE ("static_data"."name" = E'SITE_NAME') LIMIT 1 
    CACHE (0.0ms) SELECT * FROM "static_data" WHERE ("static_data"."name" = E'SITE_NAME') LIMIT 1 
Rendered dashboard/_news (0.1ms) 
    CACHE (0.0ms) SELECT * FROM "static_data" WHERE ("static_data"."name" = E'SITE_NAME') LIMIT 1 
    CACHE (0.0ms) SELECT * FROM "static_data" WHERE ("static_data"."name" = E'SITE_NAME') LIMIT 1 
    StaticData Load (0.9ms) SELECT * FROM "static_data" WHERE ("static_data"."name" = E'TAG_LINE') LIMIT 1 
Completed in 67ms (View: 58, DB: 5) | 200 OK [http://localhost/dashboard] 
    SQL (0.4ms) SET client_min_messages TO 'panic' 
    SQL (0.4ms) SET client_min_messages TO 'notice' 


Processing DashboardController#index (for 127.0.0.1 at 2010-07-16 10:23:08) [GET] 
    Parameters: {"action"=>"index", "controller"=>"dashboard"} 
Rendering template within layouts/application 
Rendering dashboard/index 
    Term Load (1.9ms) SELECT * FROM "date_ranges" WHERE ('2010-07-16' BETWEEN begin_date and end_date) AND (("date_ranges"."type" = 'Term')) 
    StaticData Load (1.1ms) SELECT * FROM "static_data" WHERE ("static_data"."name" = E'SITE_NAME') LIMIT 1 
    CACHE (0.0ms) SELECT * FROM "static_data" WHERE ("static_data"."name" = E'SITE_NAME') LIMIT 1 
Rendered dashboard/_news (0.1ms) 
    CACHE (0.0ms) SELECT * FROM "static_data" WHERE ("static_data"."name" = E'SITE_NAME') LIMIT 1 
    CACHE (0.0ms) SELECT * FROM "static_data" WHERE ("static_data"."name" = E'SITE_NAME') LIMIT 1 
    StaticData Load (0.9ms) SELECT * FROM "static_data" WHERE ("static_data"."name" = E'TAG_LINE') LIMIT 1 
Completed in 67ms (View: 58, DB: 5) | 200 OK [http://localhost/dashboard] 
    SQL (0.4ms) SET client_min_messages TO 'panic' 
    SQL (0.4ms) SET client_min_messages TO 'notice' 

Si noti che le richieste sono esattamente lo stesso, anche verso il basso per i timestamp.

Ho provato a utilizzare Ruby 1.8.7 & 1.9.1 nonché a scambiare tra Mongolo & Webrick ed elabora sempre ogni richiesta due volte (o almeno genera due voci di registro). Ho provato a rimuovere la maggior parte delle rotte per vedere se avevo qualcosa di strano in corso, ma il problema persiste. Ho provato diversi browser (Chrome, Safari, eLinks) da diversi computer per vedere se ciò potesse essere d'aiuto, ma il problema persiste. Ho rimosso tutte le mie gemme e ho sostituito solo quelle necessarie, ma senza risultato.

Qualcuno ha idea del fatto che Rails possa causare richieste duplicate come questa? Sono quasi alla fine e sto afferrando le cannucce. L'unica brillante scintilla è che questo comportamento non si verifica in ambiente di produzione, solo sviluppo.

risposta

1

La "risposta" al problema era di passare a una nuova directory e recuperare il codice originale da Github. Dopo aver configurato e configurato tutto nella nuova directory, l'applicazione funziona come dovrebbe senza richieste duplicate. Non so ancora perché il codice nella directory originale sia stato risolto; Ho persino diffuso le directory e gli unici outlier erano i file di registro.

Sto rispondendo alla mia domanda qui per la sanità mentale di altri che potrebbero verificarsi lo stesso problema.

+0

sto vivendo la stessa cosa - utilizzando Rails 2.8.6 su leopardo delle nevi. –

5

Controllare il codice di vedere se c'è qualcosa di simile al suo interno:

Ho avuto lo stesso problema solo ora becase di un tag

<img src="#"> 

questo farà sì che le rotaie per fare richieste duplicate!

+0

SI !!! Questa era la risposta per me. Lodate www! –

+0

Soluzioni sorprendenti. Grazie mille .. – akbarbin

2

ho risolto questo problema commentando la seguente riga in app/config/ambienti/development.rb:

config.middleware.use Rails::Rack::LogTailer 

non ricordo esattamente il motivo per utilizzare questa impostazione

2

ho risolvere questo stesso problema qui pulendo tutte le risorse precompilate con: rake assets:clean

Ho provato a eliminare la cartella dell'app e poi ricontrollarlo da GitHub ma non ha funzionato.

spero che questo aiuto. grazie.

1

Questo ha iniziato a succedere a me in fase di sviluppo dopo aver giocato con alcuni middleware personalizzati che ho scritto. Esecuzione di asset rake: clean: tutto risolto.

0

Questa piccola soluzione ha risolto il problema. Segui questi passi:

Sotto Librerie Rails, Cerca modulo railties. Vai a questo percorso: /lib/commands/server.rb

In questo file commentare questa linea, Rails.logger.extend (ActiveSupport :: Logger.broadcast (console))

Questo comando passa disattivare la trasmissione e riavviare il server dei binari. Non vedrai più i log ripetuti. Buona programmazione.

5

Quando le persone vengono a questa domanda da parte di Google è importante che disambiguare il loro problema tra i registri duplicati che assomigliano a questo:

A 
A 
B 
B 
C 
C 

da tronchi duplicati che assomigliano a questo:

A 
B 
C 

A 
B 
C 

L'ex è probabilmente da LOGGING duplicato. Il più tardi è probabilmente da duplicate di richieste. Nel caso in cui sia quest'ultimo come mostrato da Question Asker (OP), dovresti prendere in seria considerazione la risposta di @ www alla ricerca di uno <img src="#"> o un tag URL autoreferenziale simile. Ho passato ore a cercare di capire il motivo per cui la mia domanda appariva a fare due richieste duplicate, e dopo aver letto la risposta di @ www (o @ aelor di su Double console output?), ho trovato

%link{href: "", rel: "shortcut icon"}/ 

nel mio codice! Stava causando il rendering doppio di ogni pagina della mia app di produzione !!!! Così male per le prestazioni e così fastidioso!

+0

ma perché uno spazio vuoto 'href' fa sì che altri link raddoppino il rendering? O mi sta sfuggendo qualcosa? –

3

Ciò che mi stava succedendo in Rails 4.2.3 dopo aver installato il Heroku rails_12factor gemma che dipende rails_stdout_logging

Problemi correlati