Product
имеет следующие атрибуты:Rails: как фильтровать и сортировать продукты?
- магазин
- модель
- цена
Model
принадлежит:
- бренд
Учитывая @products
, как:
Shop Brand Model Price
---- ----- ----- -----
Ebay Sony S-100 500
Ebay Sony S-200 1000 (in Target it's cheaper)
Ebay Dell D-55 300
Target Sony S-100 600 (in Ebay it's cheaper)
Target Sony S-200 900
Amazon Dell D-33 100
Я хотел бы, чтобы отфильтровать только те, с самой низкой ценой, то есть я ожидаю получить:
Shop Brand Model Price
---- ----- ----- -----
Ebay Sony S-100 500
Ebay Dell D-55 300
Target Sony S-200 900
Amazon Dell D-33 100
и предпочтительно сортировать по Brand
, а затем Model
:
Shop Brand Model Price
---- ----- ----- -----
Ebay Sony S-100 500
Target Sony S-200 900
Amazon Dell D-33 100
Ebay Dell D-55 300
Как я могу это сделать?
Предполагается ли фильтр? –
aah! Поэтому вам нужно сгруппировать модель_id, выбрать самую дешевую и затем отсортированную. Вы можете сделать это в базе данных с напуганным запросом, но это очень опасно, будет ли оно переносимым или нет. Я обновляю свой ответ с помощью рубинового решения (разумеется, это означает, что будут отображены ВСЕ записи). –
Выбор всех записей и использование всех этих перечислимых методов будет очень медленным с большим объемом данных и приносит ненужную сложность. Я бы избегал этой техники любой ценой, если вы не знаете, что когда-либо имеете дело с небольшими объемами данных. – idlefingers