Hola a todos, mi problema es el siguiente:
- tengo una tabla “alquiler” (id_alquiler, id_socio,id_empleado)
- La clave primaria de la tabla “alquiler” es id_alquiler
- Los campos id_socio,id_empleado son FK (Claves foraneas) de una tabla
“users”
Mi modelo de alquiler es el siguiente:
class Alquiler < ActiveRecord::Base
set_primary_key “id_alquiler”
belongs_to :user, :foreign_key => “id_socio”
belongs_to :user, :foreign_key => “id_empleado”
end
Hasta ahi funcion de maravilla… Tengo mi vista que funcion bien.
Mi problema es el sgte: al querer listar todos los alquileres
<% for alquiler in @alquileres %>
<%= alquiler.copia.pelicula.titulo %>
<%= alquiler.copia.codigo %>
<%= alquiler.user.apellido %>, <%= alquiler.user.nombre %>
<% end %>
Imprime todos los datos del alquiler muy bien, pero la tercera linea
imprime solo el nombre y apellido del empleado… quisiera saber como
haria para imprimir tb el nombre y apellido del socio…
Desde ya gracias x el tiempo…
On Feb 1, 2008, at 4:39 AM, Santiago Y. wrote:
Mi modelo de alquiler es el siguiente:
class Alquiler < ActiveRecord::Base
set_primary_key “id_alquiler”
belongs_to :user, :foreign_key => “id_socio”
belongs_to :user, :foreign_key => “id_empleado”
end
No es posible, debes usar un nombre de relacion distinto para cada uno:
# untested
belongs_to :socio, :class_name => 'User', :foreign_key =>
‘id_socio’
belongs_to :empleado, :class_name => ‘User’, :foreign_key =>
‘id_empleado’
Con ello podras acceder a cada uno por separado:
alquiler.socio.apellido
alquiler.empleado.apellido
Aunque solo hubiera uno de ellos, el nombre de las relaciones aporta
mas informacion que “user”, es mejor a un alquiler preguntarle por su
“socio” que por su “user”.
– fxn
Santiago Y. escribió:
end
Imprime todos los datos del alquiler muy bien, pero la tercera linea
imprime solo el nombre y apellido del empleado… quisiera saber como
haria para imprimir tb el nombre y apellido del socio…
Desde ya gracias x el tiempo…
Ror-es mailing list
[email protected]
simplelogica.net
Hola,
Creo que para poder hacerlo tendrÃas que modificar la clase Alquiler de
la siguiente forma:
Como es ahora:
class Alquiler < ActiveRecord::Base
set_primary_key "id_alquiler"
belongs_to :user, :foreign_key => "id_socio"
belongs_to :user, :foreign_key => "id_empleado"
end
Una idea de como podrÃa ser:
class Alquiler < ActiveRecord::Base
set_primary_key "id_alquiler"
belongs_to :socio,
:class_name => "User",
:foreign_key => "id_socio"
belongs_to :empleado,
:class_name => "User",
:foreign_key => "id_empleado"
end
De esta forma podrÃas acceder tal que:
- alquiler.copia.socio
- alquiler.copia.empleado
Un saludo
Buenas de nuevo,
Donde puse
- alquiler.copia.socio
- alquiler.copia.empleado
Quise poner
- alquiler.socio
- alquiler.empleado
Saludos
Alberto Bajo escribió:
Gracias, ya lo solucione…