繁体   English   中英

Ruby on Rails中的一个任务有多个用户

[英]Multiple users to a task in Ruby on Rails

我正在Ruby on Rails中创建一个项目经理应用程序,并且我有很多“任务”(例如GitHub上的问题),可以为他们分配许多“用户”。 例如,John Smith和Jane Doe可能正在研究Task23。有点像GitHub上的问题可以有多个标签,但使用用户而不是标签。

我是Ruby on Rails的新手,我不知道如何创建“任务”模型,以便它可以引用多个用户。 我也不知道该如何表达这个问题,我已经尝试了Google搜索,但无济于事-如果这是重复的,对不起。

听起来像在您的应用中,您的用户可以有很多任务,而您的任务可以有很多用户。 在这种情况下,有两种选择

  1. has_and_belongs_to_many配置
  2. 将这两个模型结合在一起的完整模型

在这两种情况下,都会有一个将它们联接在一起的表,但是,这取决于您是否需要两者之间的模型功能。

我的建议是从#1开始,您需要阅读关联才能实现这两个选项。

例:

假设您同时具有用户模型或任务模型,则可以这样创建has_and_belongs_to_manyhas_and_belongs_to_many )关系:

$ rails g migration CreateUsersTasksJoinTable

这将产生一个迁移文件,其名称类似于以下内容。 相应地更新该文件:

# db/migrate/201806XXXXXXXX_create_users_tasks_join_table.rb
class CreateUsersTasksJoinTable < ActiveRecord::Migration[5.1]
  def change
    create_join_table :users, :tasks
  end
end

创建联接表后,您需要像这样更新UserTask模型:

# app/models/user.rb
class User < ApplicationRecord
  has_and_belongs_to_many :tasks
end

# app/models/task.rb
class Task < ApplicationRecord
  has_and_belongs_to_many :user
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM