【发布时间】:2016-11-30 12:34:35
【问题描述】:
有没有办法在 Rails 中产生可选的多对多关系?
我有一个 Client 模型和一个 ClientManager 模型 - 我希望 Client 有 0、1 或多个 client_managers。但我也希望 Clientmanger 能够拥有 0、1 或更多 clients。这可能吗?如何?
使用导轨 5。
为了清晰/目的而更新:我想要客户端管理器,能够管理多个客户端,甚至没有。并且客户端能够由 0、1 或多个客户端管理器管理
【问题讨论】:
-
为什么不能只使用
has_many :client_managers? -
不清楚您要达到的目标。请包括您当前的模型。默认情况下,
has_many关系可以有零个关联对象。 -
@AlexKojin 如果我只使用 has_many :client_managers,客户经理怎么可能有多个客户需要照顾?
-
@raj 据我了解,has_many 关系可以有零个关联对象。通过输入 belongs_to :user, optional: true 见:github.com/thoughtbot/shoulda-matchers/issues/870 - 但也许我错过了什么
-
执行此操作时不会有任何空值。
Relation模型将具有client_id列和manager_id列。通过在此处输入值建立关系。顺便说一句,这是铁轨方式。
标签: ruby-on-rails ruby-on-rails-5