在 Rails 中,如果一个模型有两个 has_many 关联,想要从中选择零关联的记录可以使用 ActiveRecord 的 joins 方法和条件查询。
假设有三个模型:User、Post 和 Comment。User 拥有两个 has_many 关联,一个是 posts,一个是 comments。现在想要选择既没有 posts 也没有 comments 的用户。
可以通过以下步骤实现:
class User < ApplicationRecord
has_many :posts
has_many :comments
end
User.joins(:posts, :comments).where(posts: { id: nil }, comments: { id: nil })
上述代码使用 joins 方法连接 posts 和 comments 表,然后使用 where 方法筛选出既没有 posts 也没有 comments 的用户。具体地,posts: { id: nil } 表示过滤掉有 posts 的用户,comments: { id: nil } 表示过滤掉有 comments 的用户。
这样就可以得到既没有 posts 也没有 comments 的用户记录。
关于腾讯云相关产品和产品介绍,可以参考以下链接:
领取专属 10元无门槛券
手把手带您无忧上云