Después de trastear un rato con este interfaz de administración, caemos en la cuenta de que nos
gustaría que el modelo Articulo tuviera más campos. Nos gustaría poder almacenar la fecha y hora
en que se creó el artículo, así como la fecha y hora de la última modificación. Para ello, lo que
necesitamos es una nueva migración donde definamos los cambios en la base de datos:
$ script/generate migration fechas_en_articulos exists db/migrate
create db/migrate/002_fechas_en_articulos.rb
Editamos el archivo generado y lo dejamos así:
# db/migrate/002_fechas_en_articulos.rb
class FechasEnArticulos < ActiveRecord::Migration def self.up
add_column :articulos, :created_at, :datetime
add_column :articulos, :updated_at, :datetime end def self.down
remove_column :articulos, :created_at
remove_column :articulos, :updated_at end end
Este código se lee fácilmente: añadir a la tabla "articulos" dos columnas "created_at" y "updated_at"
de tipo fecha y hora; y si nos echamos atrás, eliminar esas columnas. ¿Por qué le hemos puesto
nombres en inglés a estos campos de fecha? Pues para aprovecharnos de que si lo hacemos así,
Rails se encargará automáticamente de rellenar estos campos de fecha sin que tengamos que
programarlo, cada vez que se cree o actualice un artículo.
Para aplicar estos cambios ejecutaremos:
$ rake db:migrate (in /home/jaime/blog) == FechasEnArticulos:
migrating =============================================== --
add_column(:articulos, :created_at, :datetime) -> 0.0453s --
add_column(:articulos, :updated_at, :datetime) -> 0.0066s ==
FechasEnArticulos: migrated (0.0522s)
======================================
No hay comentarios:
Publicar un comentario