【发布时间】:2013-08-26 01:26:48
【问题描述】:
我正在开发一个具有复杂关联的 Rails 4 应用程序,但我不知道如何将一个模型加入到父模型中。
基本上我的应用逻辑如下
User
- belongs_to :account, polymorphic: true
Developer
- has_one :user, as: :account
- has_and_belongs_to_many :organizations
Organization
- has_one :user, as: :account
- has_and_belongs_to_many :developers
- 我决定通过 STI 走这条路线,因为这让我可以让我的应用迁移文件更整洁、更有条理
所以可以有一个 Developer 本身,也可以有一个 Organization 包含许多 Developers,所以我添加了 has_and_belongs_to_many :organizations 和 has_and_belongs_to_many :developers 来创建这种关系。因此,如果我查找 User.find().account.developers 或 User.find().account.organizations,我的应用程序中的所有内容都可以正常工作,我会得到相关记录。
现在我们到了我遇到问题的部分。在我的 Rails 应用程序中,我有一个名为 App 的模型。 Developer 可以自己创建多个Apps,或者Developer 可以创建和Organization 并在该Organization 内创建多个Apps,属于该Organization 的所有Developers 都可以访问也。我不知道如何实现这样的关系。有什么建议吗?
Developer
has_one :user, as: :account
has_many :apps, as: :appable
has_and_belongs_to_many :founding_organizations, class_name: 'Organization', foreign_key: :founder_id
has_and_belongs_to_many :collaborating_organizations, class_name: 'Organization', foreign_key: :collaborator_id
has_and_belongs_to_many :organizations (Should this stay?)
Organization
has_one :user, as: :account
has_many :apps, as: :appable
has_and_belongs_to_many :founders, class_name: 'Developer', association_foreign_key: :founder_id
has_and_belongs_to_many :collaborators, class_name: 'Developer', association_foreign_key: :collaborator_id
has_and_belongs_to_many :developers (Should this stay?)
App
belongs_to :appable, polymorphic: true
【问题讨论】:
-
一个开发者可以属于多个组织吗?
-
@Bigxiang 是的,他们可以
标签: ruby-on-rails activerecord ruby-on-rails-4 activemodel