以下是Package.rb中的当前代码
def self.available
joins(:deals).where(:available_for_purchase => true).uniq
end
现在我想要更多的包条件,这里的条件是::
:duration != nil
:expiration_date > Date.today
两者:持续时间和:失效日期不应该存在,我的意思是一个 其中必须为null,
两者也不能为空。
提前致谢。
答案 0 :(得分:0)
我希望我能理解这个问题,你能试试吗:
def self.available
joins(:deals).where("available_for_purchase = ? AND duration NOT ? AND expiration_date > ?",
true,
nil,
Date.today
).uniq
end
答案 1 :(得分:0)
好的,终于得到了查询,这是结果
def available
joins(:deals).where("available_for_purchase=?
AND(
(expiration_date IS NOT NULL AND expiration_date > ? AND duration IS NULL)
OR (duration IS NOT NULL AND expiration_date IS NULL)
) ",true,Date.today).group(:id)
end