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

Responder a