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

Responder a