我应该如何设置 Rails 应用程序,以便某些 Objects 链接到其他应用程序 (belong_to) 但并非所有 Objects 都具有这种关系?

How should I set up a Rails app so that some Objects are linked to others (belong_to) but not all Objects have this relationship?

我不确定我在标题中是否准确反映了我的目标,但我会在这里解释更多。

在我的应用程序中,我有公司和公司 has_many Key_Contacts。

公司也has_manySales_Opportunities.

我希望用户能够 select belong_to 公司的一些 Key_Contacts 并将它们与特定的 Sales_Opportunity 相关联。我还希望用户能够添加与任何 Sales_Opportunity 无关的 Key_Contact。

这样做的目的是我可以在 Sales_Opportunity 页面上显示一个 Sales_Opportunity 视图中涉及的特定 Key_Contacts,但不是全部。

是不是在Key_Contacts模型上加一个sales_opportunity_id,而不是建立"belongs_to"和"has_many"关系那么简单?或者有没有更"official Rails"的方法可以达到我的目的?

如果我没看错,那么您需要做的就是向您的 SalesOpportunity 模型(以及您的 KeyContacts 模型中的 belongs_to :sales_opportunity 添加另一个 has_many :key_contacts 关系。然后关联属于特定销售机会的所有联系人。