domingo, 6 de julio de 2014

Crear artículos - IV

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