Relativamente nuevo en Rails !!!
Como modelarÃan estas relaciones???
Estoy teniendo problemas para modelar una relación ternaria, la idea es
que en una pelÃcula un Nombre puede estar en mas de un Rol, como actor y
director por ejemplo, a su vez las relaciones son todas del tipo N-a-N,
el tema es que cada vez que creo una pelÃcula se crean varias copias de
un registro en la tabla apariciones
Esto es un ejemplo del estado de la tabla luego de crear una pelÃcula
con dos Nombres
id pelicula_id nombre_id rol_id
21 null 10 2
22 null 10 2
23 6 10 null
24 null 11 3
25 null 11 3
26 6 11 null
27 6 10 null
28 6 11 null
Y estos son los modelos
class Pelicula < ActiveRecord::Base
has_many :apariciones, :dependent => :destroy
has_many :nombres, :through => :apariciones
has_many :roles, :through => :apariciones
accepts_nested_attributes_for :nombres, :reject_if => lambda { |a|
a[:nombre].blank? }, :allow_destroy => true
accepts_nested_attributes_for :roles, :reject_if => lambda { |a|
a[:nombre].blank? }, :allow_destroy => true
end
class Nombre < ActiveRecord::Base
has_many :apariciones, :dependent => :delete_all
has_many :peliculas, :through => :apariciones
has_many :roles, :through => :apariciones
accepts_nested_attributes_for :roles, :reject_if => lambda { |a|
a[:nombre].blank? }, :allow_destroy => true
end
class Rol < ActiveRecord::Base
has_many :apariciones, :dependent => :delete_all
has_many :peliculas, :through => :apariciones
has_many :nombres, :through => :apariciones
end
Muchas gracias
MartÃn