Duda foreign key

Voy a hacer mi primera relación en una tabla:
Mis dos tablas: paginas y destacados

Paginas: id, nombre_pagina
Destacados: id, nombre_destacado, pagina_id

La
relación:PAGINAS----1:N---->DESTACADOS

Es decir, en una página puede haber varios destacados.

Bien, tengo mis modelos: Pagina y Destacado

Mi modelo Pagina pondría:
belongs_to :destacado

Mi duda es si con sólo poner pagina_id en la tabla destacados lo
reconoce como la foreign key o hay que establecerla en el modelo
Destacado poniendo :foreign_key=>:pagina_id ??

El Friday 09 March 2007 09:21:24 Miguel Angel Calleja Lázaro
escribió:> Voy a hacer mi primera relación en una tabla:

Mis dos tablas: paginas y destacados

Paginas: id, nombre_pagina
Destacados: id, nombre_destacado, pagina_id

Una observación: ¿por qué llamas “nombre_pagina” y “nombre_destacado” a esos
campos? ¿No bastaría con llamarlos “nombre” a ambos? Al fin y al cabo,
cada
uno está en una tabla diferente. Es como si a una tabla “persona” le
pusiéramos: edad_persona, nombre_persona, sexo_persona… Pero vamos, es
una
cuestión de gustos (y redundancia).

reconoce como la foreign key o hay que establecerla en el modelo
Destacado poniendo :foreign_key=>:pagina_id ??

Sería más bien:

class Pagina
has_many :destacados
end

class Destacado
belongs_to :pagina
end

Leyendo el código: una página tiene muchos destacados; un destacado pertenece
a una página.

Rails supone que la clave ajena está en la tabla que corresponde a la
clase
que tiene el “belongs_to” y que su nombre se forma añadiendo “_id” al
nombre
de la relación (pagina_id). La opción :foreign_key sólo tienes que usarla si
vas a saltarte la
convención.
Saludos.


Imobach González Sosa
correo-e: imobachgs en banot punto net
jabber id: osoh en jabberes punto org
web: http://www.banot.net/~osoh/
blog: http://devnull.blogs.banot.net/

[…] Mi duda es si con sólo poner pagina_id en la tabla destacados
lo reconoce como la foreign key o hay que establecerla […]

Encontré ayer un pdf donde explican estas cosas muy bien:

http://www.cuadernorojo.com/files/relaciones_tablas_rubyonrails.pdf

Un saludo.

Imobach González Sosa
escribió:

Una observación: ¿por qué llamas “nombre_pagina” y “nombre_destacado” a esos

Leyendo el código: una página tiene muchos destacados; un destacado pertenece
a una página.

Rails supone que la clave ajena está en la tabla que corresponde a la clase
que tiene el “belongs_to” y que su nombre se forma añadiendo “_id” al nombre
de la relación (pagina_id). La opción :foreign_key sólo tienes que usarla si
vas a saltarte la convención.

Saludos.

Ah ok, muchísimas gracias, me ha quedado ya claro

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs