Tengo un modelo PointOfContact
que has_many
Systems
. Desde el lado Systems
, quiero identificar el PointOfContact
como technical_manager
o project_manager
(o ambos). Mientras que solo mantuve el PointOfContact
1 vez en la base de datos.Mismo modelo para dos belongs_to Asociaciones
Mi intento de la siguiente manera:
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 mi especificaciones (continuación este ejemplo) que puede crear correctamente el punto de contacto System
asociaciones. Sin embargo, el PointOfContact
no tiene conocimiento de su asociación con el sistema. ¿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
más detalles sobre: through relationships on [link] (http://railscasts.com/episodes/163-self-referential-association?view=asciicast) – Zippie