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
on 2010-04-30 16:36
on 2010-05-03 20:57
La causa es un bug en la version 2.3.5 de rails con el uso de accepts_nested_attributes_for https://rails.lighthouseapp.com/projects/8994/tick...
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.