Допустим, я запускаю запрос ActiveRecord, и он возвращает 3 результата с кучей атрибутов.
Я хочу добавить 3 атрибута к каждой записи в массиве, чтобы я мог выполнять сортировку на уровне кода. Эти 3 включают: num_comments, num_views, last_view.
- Как добавить эти атрибуты?
- Как мне отсортировать записи в порядке старшинства по num_comments И по num_views И по last_view?
Ответ 1 · рейтинг 1 · Patrick Klingemann
Расширяя ответ Ларри К. и комментарий zed_0xff, зачем вообще создавать атрибуты, просто отсортируйте по методу в вашей модели:
class Widget < ActiveRecord::Base
def num_comments
#count comments
end
def num_views
#count views
end
def last_view
#return last view
end
end
в вашем контроллере
class WidgetsController < ApplicationController
def index
@widgets = Widget.all.sort_by{ |r| [r.num_comments, r.num_views, r.last_view] }
end
end