ruby on rails 3 - validaciones - Mismo modelo para dos belongs_to Asociaciones
validaciones rails (1)
Gracias a jamesw en RailsForum.com: el mismo modelo para dos belongs_to Associations se ha encontrado una solución.
class System < ActiveRecord::Base
belongs_to :project_manager, :class_name => ''PointOfContact'', :foreign_key => ''project_manager_id''
belongs_to :technical_manager, :class_name => ''PointOfContact'', :foreign_key => ''technical_manager_id''
end
class PointOfContact < ActiveRecord::Base
has_many :project_managed_systems, :class_name => ''System'', :foreign_key => ''project_manager_id''
has_many :technical_managed_systems, :class_name => ''System'', :foreign_key => ''technical_manager_id''
end
Tengo un modelo PointOfContact
que tiene PointOfContact
Systems
. Desde el lado de Systems
, quiero identificar PointOfContact
como technical_manager
o project_manager
(o ambos). Mientras que solo PointOfContact
el PointOfContact
1 vez en el DB.
Mi intento sigue:
class System < ActiveRecord::Base
belongs_to :project_manager, :class_name => ''PointOfContact''
belongs_to :technical_manager, :class_name => ''PointOfContact''
end
class PointOfContact < ActiveRecord::Base
has_many :systems
end
Cuando ejecuto mis especificaciones (ejemplo a continuación) puedo crear correctamente las asociaciones de punto de contacto del System
. Sin embargo, PointOfContact
no tiene conocimiento de su asociación con System. ¿Porqué es eso?
@sys = System.create
@tm = PointOfContact.create
@pm = PointOfContact.create
@sys.project_manager = @pm
@sys.technical_manager = @tm
@pm.systems.should have(1).items #> expected 1 items, got 0