1

我有兩個模型的學生和信息。這是一個由零的訂單?使用ActiveRecord移動所有的無相關值

Student | Information 
Leo  | nil 
Paul | Some info1 
Peter | Some info2 
Rex  | nil 

如何訂購使用活動記錄,並會顯示這樣的結果是:

Student | Information 
Paul | Some info1 
Peter | Some info2 
Rex  | nil 
Leo  | nil 

所有零Student.information.nil?將使用ActiveRecord向下移動。

回答

0

也許這個話題可以幫助您:Rails: Order with nulls last

Information.order('information_id IS NULL, information_id DESC') # Null's last 
Information.order('information_id IS NOT NULL, information_id DESC') # Null's first 

如果你只使用PostgreSQL,你也可以做到這一點

Information.order('information_id DESC NULLS LAST') #Null's Last 
Information.order('information_id DESC NULLS FIRST') #Null's First 
0

你可以不喜歡它:

Student.information.order('id DESC') # For having nil first 

Student.all.order('information_id DESC') 

默認情況下,當您按升序排列時,所有nil都會被推下。所以對於反向效果使用DESC。

該解決方案適用於所有人,無論底層數據庫如何。

+0

請讓我知道它是否有幫助。 – Disha

相關問題