2010-07-16 10 views
8

Tengo una aplicación de Rails que genera solicitudes duplicadas para cada solicitud en desarrollo. La aplicación está ejecutando Rails 2.3.5 con mi máquina de desarrollo principal ejecutando Ubuntu 10.4. Sin embargo, el mismo código funciona bien sin mostrar solicitudes duplicadas en mi cuadro OS X 10.6. También se ejecuta en modo de producción en cualquier máquina sin problemas.Solicitudes de registro de la aplicación Rails duplicadas

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' 

en cuenta que las solicitudes son exactamente la misma, incluso a las marcas de tiempo.

He intentado utilizar Ruby 1.8.7 & 1.9.1, así como el intercambio entre Mongrel & Webrick y siempre procesa cada solicitud dos veces (o al menos genera dos entradas de registro). Intenté eliminar la mayoría de las rutas para ver si tenía algo extraño, pero el problema persiste. Probé diferentes navegadores (Chrome, Safari, eLinks) de diferentes máquinas para ver si eso ayudaría, pero el problema persiste. Eliminé todas mis gemas y solo reemplacé las necesarias, pero fue en vano.

¿Alguien tiene alguna idea de por qué Rails causaría solicitudes duplicadas como esta? Estoy a punto de ponerme nervioso y agarrarme de las pajitas. La única chispa brillante es que este comportamiento no ocurre en el entorno de Producción, solo Desarrollo.

Respuesta

1

La "respuesta" al problema fue pasar a un nuevo directorio y obtener el código original de Github. Después de configurar todo y configurarlo en el nuevo directorio, la aplicación funciona como debería, sin solicitudes duplicadas. Todavía no sé por qué el código en el directorio original se descompuso; Incluso diferencié los directorios y los únicos valores atípicos fueron los archivos de registro.

Estoy respondiendo mi propia pregunta aquí sobre la cordura de otros que podrían experimentar el mismo problema.

+0

que estoy experimentando esta misma cosa - el uso de rieles 2.8.6 de leopardo de las nieves. –

5

Compruebe el código de ver si existe algo así en su interior:

Tengo el mismo problema hace un momento becase de una etiqueta

<img src="#"> 

esto hará que los carriles para hacer peticiones duplicadas!

+0

¡SÍ! Esta fue la respuesta para mí. Alabado sea www! –

+0

Soluciones increíbles. Muchas gracias ... – akbarbin

2

que resuelven este problema al comentar la siguiente línea en app/config/ambientes/development.rb:

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

no recuerdo exactamente la razón para usar esta configuración

2

puedo solucionar este mismo problema aquí al limpiar todos los activos precompilados con: rake assets:clean

He intentado eliminar la carpeta de la aplicación y luego devolverla desde GitHub pero no funcionó.

Espero que esta ayuda. gracias.

1

Esto comenzó a sucederme en el desarrollo después de jugar con algún middleware personalizado que escribí. Ejecutando activos de rake: limpio: todo lo resolvió.

0

Esta pequeña solución resolvió mi problema. Siga estos pasos:

Bibliotecas externas de Rails, módulo de búsqueda de railties. Ir a esta ruta: /lib/commands/server.rb

En este comentario de archivo de esta línea, Rails.logger.extend (ActiveSupport :: Logger.broadcast (consola))

Este comando cambiará fuera de la radiodifusión, y simplemente reinicie su servidor de rieles. Ya no verás registros repetidos. Feliz codificación.

5

Cuando la gente viene a esta pregunta de Google es importante que eliminar la ambigüedad de su problema entre los registros duplicados que se ven así:

A 
A 
B 
B 
C 
C 

De los registros duplicados que se ven así:

A 
B 
C 

A 
B 
C 

El primero es probable que provenga de un REGISTRO duplicado. Lo más probable es que provenga de SOLICITUDES duplicadas. En el caso de que sea el último, como lo muestra el Solicitante de la Pregunta (OP), debe considerar con firmeza la respuesta de www en la búsqueda de una <img src="#"> o una URL de referencia autorreferencial similar. Me pasé horas tratando de averiguar por qué mi solicitud fue apareciendo a hacer dos peticiones duplicadas, y después de leer la respuesta de @ www (o @ de aelor en Double console output?), encontré

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

en mi código! ¡Hacía que cada página de mi aplicación de producción tuviera una doble representación! ¡Tan malo para el rendimiento y tan molesto!

+0

, pero ¿por qué un 'href' en blanco causa otros enlaces al doble render? ¿O me estoy perdiendo algo? –

3

esto sucedía a mí en los carriles 4.2.3 después de instalar el heroku rails_12factor joya que depende de rails_stdout_logging

Cuestiones relacionadas