Hemos tenido un problema en Rails 3.1 cuando lo ejecutamos en modo de desarrollo. Parece que nuestros modelos a veces se vuelven a cargar a mediados de la solicitud, y se establece un nuevo object_id en las clases de nuestro modelo. Que a su vez se traduce en un ActiveRecord :: AssociationTypeMismatchModelos de raíles recargados a mitad de la solicitud que dan como resultado AssociationTypeMismatch
Carácter ActiveRecord :: AssociationTypeMismatch (# 2194222580) era de esperar, tiene carácter (# 2185863000)
Si nos volvemos config.cache_classes = true
en development.rb
el problema parece ir de distancia, pero no es realista desarrollar así, ya que tendremos que reiniciar constantemente nuestros servidores.
¿Alguien tiene una idea de por qué los modelos se pueden volver a cargar a pedido medio, o si hay una manera de forzar la caché para que dure toda la solicitud?
prueba active_reload gem es caché del modelo, y caduca cuando se realiza cualquier cambio en el modo dev. No sé por qué cambia el tiempo de ejecución. Puedes probar y dejarme saber esta ayuda para la última edición – Amar
Creo que se ve como si funcionara, ahora estamos en los raíles 3.1 y aparentemente active_reload está incluido por defecto en los raíles 3.2. Es un poco difícil de reproducir consistentemente, pero actualizaré esta pregunta si parece que se va en unos días. – aproctor
active_reload no funciona desafortunadamente. Aunque es posible que no lo hayamos configurado correctamente – aproctor