坎寧安定律:這必須是完成此任務的最佳方式。最好的。在RAILS中進行「獨家或開放式」日期查詢的最佳方法
# rubies on railz
# Assume we pass an options hash with, possibly, two dates.
# If both dates: do an inclusive between the two
# If start date: do open-ended search
# Else do close-ended search
def my_date_helper(options)
start_date = options[:start_date].try(:beginning_of_day)
end_date = (options[:end_date] || 6.months.from_now).end_of_day
if start_date && end_date
query.where(created_at: start_date..end_date)
elsif start_date
query.where("created_at >= ?", start_date)
else
query.where("created_at <= ?", end_date)
end
end
這有問題嗎?在事物的宏偉計劃,它似乎可讀性和完成任務... ... –
尼克威伊斯:謝謝你的驗證。我們無法想出更優雅的解決方案。有幾種寫作方式,但我們沒有發現改變的強制性理由。我希望我們錯過了一些新的rails helper或stdlib方法。乾杯。 – pricees