理論上我想是這樣的:
:order => "column1 ASC, column2 DESC"
訂購兩件事情在兩種不同的風格
但實際上COLUMN1是不是在我的情況下,一列,但聚合值:
:order => relations.count
我怎樣才能當其中一個實際上是一個聚合值時,按兩列排序?
BTW:反Cache是不是一種選擇(因爲它是過時的,當我需要它)
理論上我想是這樣的:
:order => "column1 ASC, column2 DESC"
訂購兩件事情在兩種不同的風格
但實際上COLUMN1是不是在我的情況下,一列,但聚合值:
:order => relations.count
我怎樣才能當其中一個實際上是一個聚合值時,按兩列排序?
BTW:反Cache是不是一種選擇(因爲它是過時的,當我需要它)
:order => "COUNT(*), column2 DESC"
要通過計算值排序/組/等等,你有相應的條款中註明它,在你的情況下使用(可能是左)加入:
Something.select("somethings.*, COUNT(others.id)").
joins("LEFT JOIN others ON others.something_id = somethings.id").
group("somethings.*").
order("COUNT(others.id), column2 DESC")
我其實用範圍,所以沒有選擇 –
我怎麼能選擇在這種情況下的關係計數? 我可以在COUNT中嵌套SELECT嗎?如果是這樣,我怎麼會引用當前對象ID(這是BTW一個範圍) –