2016-12-26 2 views
0

У меня есть простая инструкция include в моем контроллере, но порядок для включенной таблицы по умолчанию равен id. В моем случае мне нужно заказать элемент так же, как и uuid.Rails Включает с заказом не по ID

Запрос:

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

Приведенное выше выражение реагирует хорошо, но говорят, если UUID упорядочение их идентификатору являются как:

id  uuid 
5  xyz 
1  ytb 
2  tyd 

выражения, которые составляют, когда заявление пробег порядка по Я бы. Таким образом, порядок 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 вы проверяете это? –

Смежные вопросы