gpt4 book ai didi

ruby-on-rails - 如何在多对多 Rails 4 中找到未选中的项目

转载 作者:行者123 更新时间:2023-12-04 04:34:03 24 4
gpt4 key购买 nike

我有以下数据库结构。

class Category < ActiveRecord::Base
has_many :member_categories
has_many :members, :through => :member_categories
end

class Member < ActiveRecord::Base
has_many :member_categories
has_many :categories, :through => :member_categories
end

class MemberCategory < ActiveRecord::Base
self.table_name = "member_categories"
belongs_to :member
belongs_to :category
end

我可以得到任何成员类别作为以下声明
Member.first.categories

在那里我找到分配给成员的类别。我需要选择那些没有分配给成员的类别。我如何编写一个范围来实现这一点。

请指教,先谢谢了。

最佳答案

这不是一个适合范围的工作。只需编写一个方法来查找 ID 不在与给定成员关联的类别 ID 集中的所有类别:

class Member
has_many :member_categories
has_many :categories, through: :member_categories

def not_categories
Category.where('id not in (?)', categories.pluck(:id))
end
end

关于ruby-on-rails - 如何在多对多 Rails 4 中找到未选中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20064194/

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