2016-12-26 84 views
0

我在我的控制器中有一個簡單的包含語句,但包含表的順序是默認ID。 在我的情況下,我需要以與接收uuid相同的方式排列元素。Rails包括與訂購不ID

查詢:

compare_uuids = {xyz, ytb, tyd} 
@books = Book.where(uuid: compare_uuids).includes(:venue, :related_publisher, :related_author) 

上述表達式反應良好,但說,如果他們的ID的UUID訂貨如:

id  uuid 
5  xyz 
1  ytb 
2  tyd 

組成表達式時的發言來看是爲了通過ID。所以uuid訂單就會丟失。 有沒有解決它的方法。

回答

0

就試試這個...

has_many :books, :order => 'priority DESC' 

在軌道4,這是現在已經過時,新的辦法將是

has_many :books, -> { order(:priority => :desc) } 

獲取輸出:

你可以嘗試

Authors.books.except(:order).order('priority DESC') 
# OR 
Authors.books.reorder('priority DESC') 
+0

我在Book.r中添加了上面這行代碼B模型...但它不工作 –

+0

你現在可以檢查.. –

+0

@SyedAsadAbbasZaidi你檢查嗎? –