В существующем контроллере продуктов мы сортируем продукты по цене.
def index
@products = Product.all.order(price: :asc)
@products = @products.paginate(:page => params[:page], :per_page => 20)
end
Теперь я хотел бы изменить сортировку так, чтобы мы интересовали пользователей.Общая политика сортировки будет выглядеть так:
элементы, принадлежащие заинтересованным пользователям категориям, будут перечислены вверху.Остальные товары будут перечислены позже.
В рамках группы, заинтересованной пользователем, товары должны быть заказаны на основе цены.(аналогичный подход для неинтересной группировки).
Таблица пользователей
id name interested_categories
1 Alice [ 10, 11 ]
2 Bruce [ 11 ]
3 Carol [ 10, 12 ]
Таблица категорий
id category_name
10 School
11 Kitchen
12 Camping
Таблица продуктов
id product_name price category_id
1 pencil 2 10