gpt4 book ai didi

ruby-on-rails - 多对多关系别名

转载 作者:行者123 更新时间:2023-12-04 10:48:22 27 4
gpt4 key购买 nike

我有一个用户模型和一个任务模型。

任务:

class Task < Sequel::Model
include ActiveModel::Serialization
many_to_one :subject, polymorphic: true
many_to_one :creator, key: :created_by, class: :User

def_dataset_method(:sort_recent) do
order(Sequel.desc(:created_at), Sequel.desc(:id))
end

end

用户:
class User < Sequel::Model
include ActiveModel::Serialization

one_to_many :task
end

现在我希望用户能够创建一个任务并将其分配给多个其他用户,但我很困惑什么是最好的方法(我猜是通过连接表)以及我是否需要另一个模型。

最佳答案

续集 many_to_many创建 many to many associations没有模型(但当然有连接表)。这相当于 has_and_belongs_to_many在 ActiveRecord 中。

DB.create_table :assignments do
primary_key :id
foreign_key(:user_id)
foreign_key(:task_id)
end

class Task
many_to_many :assigned_users,
class: :User,
join_table: :assignments,
right_key: :user_id # this might not be needed
end

class User
many_to_many :assigned_tasks,
class: :Task,
join_table: :assignments,
right_key: :task_id
end

关于ruby-on-rails - 多对多关系别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59594363/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com