Краткий ответ: вы можете использовать select
, чтобы выбрать только продукты с ценой менее 50 долларов, или даже partition
, чтобы разделить список на те, которые ниже и выше этой цены.
В идеале вы должны делать это вне поля зрения, например, внутри контроллера или даже модели.
Базовая фильтрация (вид изнутри):
@products.select { |p| p.price < 50 }.each do |product|
Или с областью в модели:
scope :below_price, ->(price) { where("price < ?", price) }
Вы можете использовать его в контроллере:
PRICE_THRESHOLD = 50
def index
@products = Product.below_price(PRICE_THRESHOLD)
end