在我的申请中,我有以下情况:
用户所属组织 组has_many用户
Project belongs_to User 用户has_many项目
以下情况也是如此: - 每个小组将有一个BaseCase - 每个项目将有多个场景和一个BaseCase(取决于项目用户所属的组) - 场景和BaseCase是相同类型的对象(让我们称这个数据) - 每个方案的默认值是组的BaseCase值,但用户可以更改这些默认值以创建特定方案
我不确定如何通过协会有效地捕捉所有这些关系,有没有人有任何想法?感谢
答案 0 :(得分:0)
如果我理解正确,那么
class User
belongs_to :group
has_many :projects
end
class Group
has_many :users
has_many :projects, :through => :users
has_one :base_case
end
class Project
has_many :scenarios
has_one :base_case
belongs_to :user
has_one :group, :through => user
has_one :base_case, :through => :group
end
class Scenario
belongs_to :project
has_one :base_case, :through => :project
before_create do
self.attributes = self.base_case.attributes.except(:group_id, ...)
end
end
class BaseCase
belongs_to :group
end