我目前在我的一个控制器中使用了以下Active Record .select
查询:
@bids = current_user.bids.select { |bid| !bid.bid_has_failed_date }
以及我的bid_has_failed_date
模型中Bid
方法的条件:
def bid_has_failed_date
self.real_property_sale.try(:real_property_sale_project).try(:failed_date).present?
end
我更愿意使用.where
和.joins
来做同样的事情。到目前为止,我已经得到了这个:
.where(agent_id: agent_id).joins(real_property_sale: :real_property_sale_project).where(real_property_sale_projects: { failed_date: nil })
这样做的问题是它只会返回real_property_sale_project
和failed_date
为零的出价。相反,我需要它返回所有出价,不包括failed_date
出现的出价。
答案 0 :(得分:1)
where(agent_id: agent_id) -
where(agent_id: agent_id)
.joins(real_property_sale: :real_property_sale_project)
.where.not(real_property_sale_projects: { failed_date: nil })