gpt4 book ai didi

mysql - 验证连接表中两个 id 的唯一性

转载 作者:行者123 更新时间:2023-11-29 23:57:01 25 4
gpt4 key购买 nike

我有一个列表模型,其中包含多个帖子,反之亦然。

我有一个连接表:

create_table :postings_lists do |t|
t.integer :posting_id
t.integer :list_id
end

用户有很多列表。我已经通过以下方式验证了用户列表的唯一性:

validates :name, presence: true, uniqueness: {scope: :user_id}

在连接表中,如何验证 :posting_id 和 :list_id 的唯一性,以便帖子不能多次属于一个列表?

我尝试在模型中的 has_and_belongs_to_manys 中添加 uniq: true ,但它把事情弄乱了,我尝试在列表模型中添加自定义验证,但它不起作用。

我认为最简单的事情就是验证连接表中的两个 id,但我不知道是否可以在不创建模型的情况下做到这一点?

最佳答案

我会使用 has_many :through 而不是 HABTM。

class List < ActiveRecord::Base
has_many :postings
has_many :posts, through: :postings
end

class Posting < ActiveRecord::Base
belongs_to :list
belongs_to :post

validate :post_id, uniqueness: {scope: :list_id}
end

class Post < ActiveRecord::Base
has_many :postings
has_many :lists, through: postings
end

关于mysql - 验证连接表中两个 id 的唯一性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25275326/

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