【发布时间】:2015-08-18 17:44:23
【问题描述】:
Domains 和 Families 之间存在多对多关系
class Family < ActiveRecord::Base
has_many :domains_families
has_many :domains, through: :domains_families
end
class DomainsFamily < ActiveRecord::Base
belongs_to :family
belongs_to :domain
end
class Domain < ActiveRecord::Base
has_many :domains_families
has_many :families, through: :domains_families
end
我想获取所有没有domains 的families
我创建了这个方法,它有效,但我知道它可以更有效地完成
def self.no_domains
families = []
all.each do |family|
families << family if family.domains.blank?
end
families
end
实现此目的的正确方法是什么?
【问题讨论】:
-
Family.includes(:domains_families).where(domains_families: {domain_id: nil})会起作用。实际上我不确定postgresql -
哎呀,我不知道标记为重复实际上会关闭您的问题,我认为它会打开投票将其标记为重复。我希望我没有毁了你的帖子...
标签: ruby-on-rails postgresql model-associations