两个所属协会的同一模式

我有一个模型PointOfContact has_many Systems 。 从Systems方面,我想确定PointOfContact作为technical_managerproject_manager (或两者)。 虽然仍然只保留在数据库中的PointOfContact 1时间。

我的尝试如下:

 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 

当我运行我的规格(下面的例子),我可以正确地创buildSystem的联系点关联。 但是, PointOfContact并不知道它与系统的关联。 这是为什么?

 @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 

感谢RailsForum.com的jamesw: 为两个belongs_to协会find了相同的模型 。

 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