Ruby on rails 申请条件与否有很多关系

Ruby on rails 申请条件与否有很多关系,ruby-on-rails,postgresql,activerecord,Ruby On Rails,Postgresql,Activerecord,使用rails 4.1.8从Postgre数据库检索某些数据时遇到问题 让我们考虑两个关系密切的模型 class Post < ActiveRecord::Base has_many :comments end 提前感谢您的帮助:)您可以尝试使用连接和组以及拥有语句,但是您得到的关系将非常脆弱(您将无法像您希望的那样轻松地查询它-删除将彻底破坏它) 解决此问题的方法是将其拆分为两个db调用: def self.all_comments_approved non_approved_

使用rails 4.1.8从Postgre数据库检索某些数据时遇到问题

让我们考虑两个关系密切的模型

class Post < ActiveRecord::Base
  has_many :comments
end

提前感谢您的帮助:)

您可以尝试使用
连接
组以及
拥有
语句,但是您得到的关系将非常脆弱(您将无法像您希望的那样轻松地查询它-
删除
将彻底破坏它)

解决此问题的方法是将其拆分为两个db调用:

def self.all_comments_approved
  non_approved_ids = joins(:comments).where.not(comments: {state: 'approved'}).uniq.pluck(:id)
  where.not(id: non_approved_ids)
end 
def sef.all_comments_approved
  joins(:comments).where("ALL(comments.state = 'approved')").references(:comments)
end
def self.all_comments_approved
  non_approved_ids = joins(:comments).where.not(comments: {state: 'approved'}).uniq.pluck(:id)
  where.not(id: non_approved_ids)
end