我在Rails中有一個查詢,它根據一系列OR語句獲取一組記錄。ActiveRecord按匹配條件數排序
@properties = policy_scope(Property).withdrawn_query(@hotlist_preference.withdrawn?)
.or(policy_scope(Property).fallen_through_query(@hotlist_preference.fallen_through?))
.or(policy_scope(Property).time_on_market_query(@hotlist_preference.time_on_market?))
.includes(:listings).paginate(page: params[:page], per_page: 20)
基本上有3個查詢,一個簡單的版本可能是這樣的:
@properties = Property.where(state = withdrawn).or(where(state = fallen_through)).or(where(age = 4.weeks.ago))
我想要做的就是爲了這個查詢的次數或條件的每個結果滿足。所以說有一個財產與撤回狀態,其年齡是2個星期前,它將有一個訂單值爲2.如果可能我還想將訂單值添加到屬性的返回散列,所以我可以使用它在視圖中。
我一直在努力找到一個乾淨的方式來做到這一點,而不再通過一組相同的查詢運行結果。
您正在使用什麼數據庫? –
我不知道這是否被ActiveRecord支持,但是你可以考慮下降到[原始SQL](http://stackoverflow.com/a/3289152/1954610)來實現這個目標? –
我使用的是PostgreSQL – rmaspero