Controladores en una relacion muchos a muchos


#1

Hola.

aunque lo que comento en este post lo he implementado de varias
formas, me gustaría conocer vuestra opinión para saber que forma os
parece mas DRY.

En una relación muchos a muchos. (persona con teléfonos por ejemplo),
esta claro que tiene que haber 3 modelos, pero cuantos apartados
(vista-controlador) os parece que tiene que haber???

O bien 3 (vista-controlador)

  • uno para insertar teléfonos
  • otro para insertar personas
  • otro para seleccionar personas y teléfonos y unirlos en la tabla
    resultante de la
    relación
    O bien 2 (vista-controlador)
  • uno para insertar teléfonos y que se puedan seleccionar personas
    desde la vista
  • otro para personas y que se puedan seleccionar teléfonos desde la
    vista

No se si me habré explicado bien, las dos formas funcionan pero no se
por cual decidirme, que os parece??? de cara a un usuario con cual de
las opciones creéis que se las arreglaría mejor, que recomendáis?

Gracias por las opiniones y sugerencias.

Un saludo


#2

Hola,
Siento no responder a tu pregunta y encima hacer otra,

alarkspur
escribió:> Hola.

aunque lo que comento en este post lo he implementado de varias
formas, me gustaría conocer vuestra opinión para saber que forma os
parece mas DRY.

En una relación muchos a muchos. (persona con teléfonos por ejemplo),
esta claro que tiene que haber 3 modelos, pero cuantos apartados
(vista-controlador) os parece que tiene que haber???

¿3 modelos?

Tienes 3 tablas
personas
telefonos
personas_telefonos

y 2 modelos
class Persona < ActiveRecord::Base
has_and_belongs_to_many :telefono, :join_table =>
“personas_telefonos”, :foreign_key => “telefono_id”
end

class Telefono < ActiveRecord::Base
has_and_belongs_to_many :persona, :join_table =>
“personas_telefonos”, :foreign_key => “persona_id”
end

O soy yo quien esta pescando?

NOTA: todo esto es de oidas, todavia no he podido meter mucha mano a
Rails, pero la idea que tenia era esa.


#3

¿3 modelos?

Tienes 3 tablas
personas
telefonos
personas_telefonos

Si, así es, lo tengo con tres tablas, por eso tengo 3 modelos, aunque
en el modelo personas_telefonos no tengo nada y en los otros dos
modelos lo tengo de la siguiente manera

class Persona < ActiveRecord::Base
has_and_belongs_to_many :telefonos
end

class Telefono < ActiveRecord::Base
has_and_belongs_to_many :personas
end

lo que me tiene en duda es a la hora de introducir datos (de cara a
realizarlo de la forma mas simple para el usuario)
permitir al usuario relacionar los telefonos a la hora de introducir
una persona
ó
permitir al usuario relacionar las personas a la hora de introducir
un telefono
ó
introducir telefonos y personas de forma independiente y luego desde
otro controlador-vista que los relacione

vaya lio. no se por cual decidirme.


#4

2007/3/9, alarkspur removed_email_address@domain.invalid:

Yo diria que lo mas logico es que, a la hora de crear una persona,
puedas introducir varios telefonos.
Para hacer eso necesitaras un form con varios modelos, de hecho es
un form con 2 modelos, uno de los cuales es una lista (una lista de
telefonos). Hacer eso no es facil precisamente, busca por aqui:

http://railsforum.com/viewforum.php?id=20