好的。所以我有一個Vehicle模型和Schedule模型。車輛has_many :schedules
(時間表belongs_to :vehicle
)。時間表具有以下結構:通過兩個關聯模型的導軌複雜搜索條件
id | (date)from_date | (date)to_date | (bool)available | (int)vehicle_id
用戶指定天範圍:from_date
和to_date
和我需要返回車輛,其具有所有天可用
實施例(利用一種車輛爲了簡化):
[
(id: 1, from_date: "10/10/2012", to_date: "13/10/2012, available: true, vehicle_id: 1),
(id: 2, from_date: "14/10/2012", to_date: "15/10/2012", available: true, vehicle_id: 1),
(id: 3, from_date: "16/10/2012", to_date: "20/10/2012", available: false, vehicle_id: 1)
]
-Test查詢:
1) from_date: "12/10/2012", to_date: "15/10/2012"
,=>結果:車輛
2)from_date: "11/10/2012", to_date: "17/10/2012"
,=>結果:[](由於16.10和17.10是不可用)
3)from_date: "01/11/2012", to_date: "30/11/2012"
,=>結果:車輛(如果不是一個單一的日期範圍內的日期在Schedule列表中 - 車輛仍然返回(視爲可用)。所以唯一的例外 - 如果從該範圍內的任何一天碰巧是not_available - 車輛應該被拒絕)
這是如何實現的?對不起,如果它太複雜。
是對象模型的實際名稱?它代表什麼? –
不,不是。爲了簡單起見,我已經命名了它(因爲它實際上並不重要)。在我的具體情況下,它代表Vehicle對象(它有一個租借計劃) – Dmitri
我將它重命名爲Vehicle - Object是一個內置的Ruby類,因此它使它更容易混淆,而不是更少! –