Controladores en una relacion muchos a muchos

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

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 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.

2007/3/9, alarkspur [email protected]:

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