【问题标题】:Rails many to many return records with no association [duplicate]Rails多对多返回记录没有关联[重复]
【发布时间】:2015-08-18 17:44:23
【问题描述】:

DomainsFamilies 之间存在多对多关系

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

我想获取所有没有domainsfamilies

我创建了这个方法,它有效,但我知道它可以更有效地完成

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


【解决方案1】:

可能重复:Rails 4 scope to find parents with no children

scope :without_children, includes(:children).where(:children => { :id => nil })

在你的情况下:

Family.includes(:domains).where(domains: { id: nil })

【讨论】:

  • 感谢重复,抱歉
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多