चूँकि 3, 4, 2 क्रमिक क्रम नहीं है, इसलिए उन्हें ठीक से ऑर्डर करने के लिए एक कस्टम स्थिति होनी चाहिए, आप इसे CASE WHEN
अभिव्यक्ति
।
order_sql = Arel.sql(
'CASE WHEN users_count = 3 THEN 0 ' \
'WHEN users_count = 4 THEN 1 ' \
'ELSE 3 END'
)
Group.where(users_count: [2,3,4]).order(order_sql)
जो देगा 0
जब users_count = 3
, 1
जब users_count = 4
, और 3
अन्य मामलों के लिए। डिफ़ॉल्ट आरोही क्रम के साथ आपको मनचाहा परिणाम मिलेगा।