Hay otro ORM que se puede usar en Rails, DataMapper, que plantea lo opuesto que ActiveRecord, es decir se diseña el modelo y luego el DDL para generar las tablas de infiere a partir de los modelos. Entiendo que se integra mejor en Rails 3 que Rails 2, pero parece que hay gente que lo hizo andar en este ultimo.
El día 17 de marzo de 2011 08:30, Tute <[email protected]> escribió: > En Rails, es al reves de lo que sugeris. En las migraciones, o sea, en las > tablas de la base esta toda la información de cada modelo, incluyendo las > relaciones foraneas. Luego en el modelo, declaras esta relación foranea. Por > ejemplo: > > > class Domicilio < ActiveRecord::Base > > belongs_to :usuario > > end > > class Usuario < ActiveRecord::Base > > has_one :domicilio > > end > > Ahí lo declaraste pero para que realmente funcione, tenes que declarar esta > relación en las tablas: > > create_table :domicilios do |t| #(siempre las tablas van en plural y > supongo que este es el plural de address) > t.integer :usuario_id > t.string :calle > etc > end > > En el código > > pepe = Usuario.find 1 > pepe.domicilio #imprime <Domicilio aXF5frutA> > pepe.domicilio.id #imprime el id que sea > > > Ahora bien, en Rails no declaras FK en las tablas. No es necesario. Podes > determinar igual todas las relaciones que se te ocurran: one-to-one, > one-to-many, many-to-etc etc. > > Esto como recomendación personal, agarrate un manualcito para arrancar. A mi > me paso cuando empece que lo implicito/mágico de Rails, parecia limitarme y > obligarme por todos lados a laburar de un modo anormal. Rails puede ser un > chiquitin esoterico por lo implicito al principio. Después cuando lo > entendes, vas a comprender la fama de lenguaje para desarrollar rápido. > > On 03/16/2011 11:28 PM, Juan Manuel Garcia wrote: > > Muchas gracias! > Leyendo la guía que me recomendaste me encontré con esto: > """The Active Record way claims that intelligence belongs in your models, > not in the database. As such, features such as triggers or foreign key > constraints, which push some of that intelligence back into the database, > are not heavily used.""" > ¿No se suelen definir foreign key constraints en Rails? Es decir, ¿La lógica > de restricción de la misma la impone el modelo de datos? > > _______________________________________________ > Ruby mailing list > [email protected] > http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar > > > _______________________________________________ > Ruby mailing list > [email protected] > http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar > > _______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
