Rya*_*yan 39 associations model-associations ruby-on-rails-3
我有一个模型,PointOfContact其中has_many Systems.从Systems侧面我想要识别PointOfContact为technical_manager或project_manager(或两者).虽然仍然只PointOfContact在DB中保留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
Run Code Online (Sandbox Code Playgroud)
当我运行我的规范(示例如下)时,我可以正确地创建System联系点关联.但是,PointOfContact它并不知道它与System的关联.这是为什么?
@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
Run Code Online (Sandbox Code Playgroud)
Rya*_*yan 67
感谢jamesw在RailsForum.com:两个belongs_to协会的相同模型找到了解决方案.
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13860 次 |
| 最近记录: |