我有一个 User 模型、一个 Team 模型和一个 CoachingRole 模型。CoachingRoles 模型用于关联用户和团队,因为用户和团队之间已经存在一对多关联。各自的关联设置如下:
用户:
has_many :coaching_roles
has_many :teams_coaching, :through => :coaching_roles, :source => :team
团队:
has_many :coaching_roles
has_many :coaches, :through => :coaching_roles, :source => :user
教练角色
belongs_to :team
belongs_to :user
我有一个表单来编辑用户,其中一部分是将团队添加到其 CoachingRoles。这是我到目前为止的 select_tag:
= select_tag "user[coaching_role_ids]", options_for_select(@teams.map {|t| [t.name, t.id]})
该特定行会将 Team id 添加到 User's coaching_role_ids
,但显然不会添加相反的内容。最终,我想添加:multiple => true
它并允许将多个团队的选择添加到用户的 CoachingRoles 中。这样做的最佳方法是什么?