【发布时间】:2018-12-22 22:09:29
【问题描述】:
我有一个项目应用程序,允许团队中的所有用户创建任务,我希望用户能够将用户添加到任务(例如,如果多人参加会议)。基本上,新的任务表单将包含团队成员的所有用户名,并且用户可以为参与任务的其他任何人选中每个名称旁边的框。
最初,我认为最好的方法可能是我拥有的has_many through: 关系:
任务:
class Task < ApplicationRecord
has_many :user_tasks
has_many :users, through: :user_tasks
用户:
class User < ApplicationRecord
has_many :user_tasks
has_many :tasks, through: :user_tasks
和 User_Tasks:
class UserTask < ApplicationRecord
belongs_to :user
belongs_to :task
end
这个想法是,当创建新任务时,任务中标记的任何 user_ids 都会在 User_Tasks 中创建新条目。但我不是 100% 确定如何在任务创建操作中做到这一点,我开始怀疑这是否过于复杂了?
有没有更简单的方法来做到这一点?如果不是,围绕这个has_many through: 关联构建create 操作的最佳方式是什么?
【问题讨论】:
标签: ruby-on-rails activerecord