我正在研究与复杂关联的Rails 4应用程序,我无法弄清楚如何将一个模型连接到父项。Rails has_and_belongs_to_many与许多
基本上我的应用程序逻辑如下
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
的模型。 A Developer
可以创建许多Apps
本身或Developer
可以创建和Organization
并在该Organization
内创建许多Organization
属于该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
@Bigxiang是的,他们可以 – ny95