我在RoR中創建數據庫支持的日曆,並且第一步是返回給定年份內的所有事件。我的活動表架構如下:使用ActiveRecord幫助程序執行OR和AND條件
id:integer description:string startdate:datetime enddate:datetime
在英語中,我覺得這是我需要執行返回落在某一年內的所有事件的邏輯:
(當活動啓動小於年開始和事件結束比年開始)OR
更大(當事件開始大於年開始和事件結束小於年末)OR
(當事件開始小於年末和事件結束大於年開始)
第一行獲取在給定的所有事件結束r,第二行獲取一年內的所有事件,最後一行獲取在一年內開始的所有事件。
這個邏輯能更高效嗎?
我讀過ActiveRecord的手工創造一個公平的一些動態的網站,但我只需要去Person.find(34)
或Person.where(name: 'Jimmy')
,真不知道如何用ActiveRecord的輔助方法執行上述邏輯!
你可以做到這一點在單個查詢中,爲什麼要使用三個查詢的組合。你是否屬於Ruby on Rails開發者的其他技術? –
我沒有太多練習SQL語句。我很樂意看到如何用一個查詢來完成它:) – Starkers