2016-04-12 6 views
0

У меня есть такие вопросы:Рельсы заказать активную запись по иностранным атрибуте

@collections = Collection.all() 
render :json => @collections.as_json(
       :include => :items 
      ) 

и

@collection = Collection.find(params[:id]) 

Для СПИСКА и GET методы. И коллекция имеет ноль или много элементов. Я определил связь с полем owner_to в Items и has_many в коллекции, и это работает нормально.

Затем, когда я запрашиваю коллекции и отрисовываю JSON, я хотел бы отсортировать элементы по целочисленной переменной, называемой номером, которая принадлежит Item.

Я попытался это, но он не работает:

@collections = Collection.sort_by &:item_number 

Я хочу, чтобы отсортировать список Предмет, который находится внутри коллекции по номеру. Это то, что возвращает @collections = Collection.all(), и я хотел бы отсортировать список элементов по номеру.

{ "ID": 1, "название": "Коллекция", "сюжет": "стрелка", "created_at": "2016-04-11T17: 53: 38.892Z", "updated_at": «2016-04-11T17: 53: 38.892Z», «item»: [{"id": 10, "title": "Item 12", "collection_id": 1, "created_at": "2016-04 -11T23: 27: 08.302Z "," updated_at ":" 2016-04-11T23: 27: 08.302Z "," number ": 12}, {" id ": 11," title ":" Item 102 ", "collection_id": 1, "created_at": "s2016-04-11T23: 27: 24.649Z", "updated_at": "2016-04-11T23: 27: 24.649Z", "номер": 10}, { "идентификатор ": 12," title ":" Item 9 "," collection_id ": 1," created_at ":" 2016-04-11T23: 27: 53.201Z "," updated_at ":" 2016-04-11T23: 27: 53.201Z "," number ": 9}]}

+1

Вы хотели бы отсортировать по сумме целых чисел с помощью того, что ? Получите экземпляр, пожалуйста, что вы действительно хотите – Ilya

+0

Здравствуйте! У меня есть список элементов внутри коллекции, я хочу сортировать элементы, находящиеся внутри коллекции, по номеру – lapinkoira

+0

. Итак, вы хотите запросить свои коллекции и получить их с отсортированными элементами? Какие предметы? Другая модель, подкрепленная другой таблицей? Если это так, 'Collection.all' должен возвращать вам ваши коллекции без соответствующих элементов. – VonD

ответ

1

Вы можете добавить order к вашим has_many отношениям в Collection модели

has_many :items, -> { order(:number) } 

Это даст вам список элементов внутри коллекции, отсортированных по номеру

+0

Должен ли я указывать ASC или DESC? – lapinkoira

+0

это ASC по умолчанию вы можете установить 'order (number:: asc)' –

+0

Должен ли я генерировать миграцию? – lapinkoira

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