martes, 15 de julio de 2014

Comentarios - I

Para finalizar el blog, necesitamos poder recoger y mostrar los comentarios que los visitantes quieran dejar en cada artículo. Es hora de crear un nuevo modelo: Comentario. Un comentario tendrá un texto, el nombre del usuario, la fecha de creación, y el id del artículo al que está asociado.

$ script/generate model Comentario exists app/models/ exists
test/unit/ exists test/fixtures/ create app/models/comentario.rb
create test/unit/comentario_test.rb create
test/fixtures/comentarios.yml exists db/migrate create
db/migrate/003_create_comentarios.rb

Editamos el fichero de migración:

# db/migrate/003_create_comentarios.rb
class CreateComentarios < ActiveRecord::Migration def self.up
create_table :comentarios do |t| t.column :texto, :text
t.column :nombre, :string t.column :created_at, :datetime t.column
:articulo_id, :integer end end def self.down
drop_table :comentarios end end
Ejecutamos la migración para crear la nueva tabla de comentarios...
$ rake db:migrate (in /home/jaime/blog) == CreateComentarios:
migrating =============================================== --
create_table(:comentarios) -> 0.1017s == CreateComentarios:
migrated (0.1019s) ======================================

 Hemos creado la nueva tabla de comentarios, que incluye un campo para relacionarlos con el artículo que le corresponda. Ahora hemos de indicar qué tipo de relación queremos entre artículos y comentarios, editando los modelos. Queremos que un artículo pueda tener varios comentarios, y que un comentario pertenezca a un único artículo, así que esto se traduce en lo siguiente:

# app/models/articulo.rb
class Articulo < ActiveRecord::Base has_many :comentarios end
# app/models/comentario.rb
class Comentario < ActiveRecord::Base belongs_to :articulo end

No hay comentarios:

Publicar un comentario