[英]Complex conditional rails 3 activerecord query
以下是Package.rb中的當前代碼
def self.available
joins(:deals).where(:available_for_purchase => true).uniq
end
現在,我想獲得更多關於包裝的條件,這里的條件是:
:duration != nil
:expiration_date > Date.today
:duration和:expiration日期都不應同時存在,我的意思是其中之一必須為null,
兩者也不能為null。
提前致謝。
我希望我理解正確的問題,可以嘗試一下:
def self.available
joins(:deals).where("available_for_purchase = ? AND duration NOT ? AND expiration_date > ?",
true,
nil,
Date.today
).uniq
end
好的,終於得到了查詢,這是結果
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.