Как заказать коллекции, которые являются ActiveRecord_Associations_CollectionProxy и не сохраняются в БД?

#ruby-on-rails #activerecord

Вопрос:

Класс books is Book::ActiveRecord_Associations_CollectionProxy.

Они еще не сохранены в базе данных.

Book обладает атрибутами isbn и. price

Я хочу заказать books по isbn и price .

поэтому я попытался books.order(:isbn, :price)

этот результат-пустой массив([])

Как мне заказать коллекции, которые не сохранены в базе данных?

Пожалуйста, дайте мне несколько советов.

Комментарии:

1. Используйте перечисляемый метод#sort_by

2. Спасибо! books.order(:isbn, :price) возвращает пустой массив. причина, по которой эти списки еще не сохранены в БД?

Ответ №1:

Вы можете выполнить сортировку в памяти с Array#sort помощью или Array#sort_by

 books.sort_by { |b| [b.isbn, b.price]  }