Este post tiene dos finalidades: apuntar un detalle de Rails para que nunca más se me olvide y quejarme(en vano) ya que, a veces, Rails tiene cosas que me resulta dificil entender como es el caso que nos ocupa. Veamos el siguiente fragmento de una inocente migration.
1 2 3 4 5 6 7 8 |
|
Parece lógico pensar que la energía de los usuarios al finalizar la migration será 20. Craso error. La nergía es 0, el valor por defecto. La razón es que la clase User
está inicializada antes de la ejecución de add_column
y por tanto en el momento de actualizar el atributo con update_attribute
no existe un campo energy. SI hubiesemos escrito algo como…
1 2 3 4 |
|
…obtendríamos una simpatica excepción. No hay problema, miramos la documentación de Migration y nos encontramos con un apartado que habla de esto y nos indica que debemos invocar el método reset_column_information
para poder actualizar los accessors de las diferentes propiedades de la clase.
1 2 |
|
Todo esto está muy bien, pero a mi me asalta una duda. Si esto es así, por qué demonios no se invoca esa función cuando se modifica una columna de una tabla de forma transparente al programador.
En fin. Es lo que hay.
Lo sentimos, pero los comentarios están cerrados
Por qué no envías un ticket??
Nunca vira a doc. de rails… está tremendo! oxalá houbera algo así para Zope, porque andar petando na e-porta ao autor dalgunha cousa e cansino cansino.
¿Por certo plantexastesvos dar algún curso de rails na afi ou na fic?
Si el GPUL nos vuelve a invitar a alguna de sus jornadas estaremos encantados de dar alguna charla sobre RAILS. Sobre cursos más completos no hay nada de momento, pero si que estaríamos interesados. En este momento es necesario crear comunidad en torno a Rails, y un curso sería una manera perfecta de “enganchar a la gente”.