sábado, agosto 27, 2011

Aprendiendo Ruby...(o debería decir Rails)

Al principio parecía dificil. A ver si podía decifrar esto:

class Project < ActiveRecord::Base
has_many :tasks, :class_name => "Task", :foreign_key => "project_id"
end


sin embargo ir aprendiendo rails ultimamente ha resultado ser de lo más gratificante.
Sólo me bastó una línea para crear todo un mantenimiento para la entidad "task":
rails generate scaffold Task descripcion:string fechainicio:date fechafin:date observaciones:string prioridad:integer avance:integer

de igual forma para proyecto
rails generate scaffold Project CodigoSAP:string Nombre:string FechaInicio:date FechaFin:date DuracionDias:integer CostoPrevisto:float

Luego simplemente declarar que un proyecto puede tener varias tareas:
class Project < ActiveRecord::Base
has_many :tasks, :class_name => "Task", :foreign_key => "project_id"
end

y que una tarea pertenece a un sólo proyecto:
class Task < ActiveRecord::Base
belongs_to :project, :class_name => "Project", :foreign_key => "project_id"
end


Y el resto, rails hace la "magia". Ya tenía una pequeña aplicación web que relaciona "automágicamente" ambas entidades sin mayor esfuerzo. Puedo ir de mis proyectos a sus tareas o saber qué tareas están relacionadas en un proyecto sin siquiera escribir ni una sóla línea de validación.

¿Quieres saber más? http://ruby.railstutorial.org/

No hay comentarios.: