Cook ie разбор определенно не относится к представлению. И вы также должны вообще избегать запросов к базе данных в представлении. В идеале представление должно просто брать данные с контроллера и отображать их.
Также никогда не используйте .find
в al oop. Это создаст запрос к базе данных для каждой итерации. Это также вызовет исключение ActiveRecord::RecordNotFound
, если какой-либо из идентификаторов не найден в базе данных.
Итак:
@cart_items = Product.where(id: cookies[:cart_items].split(','))
Менее плох. Но вряд ли идеально, так как он не позволит вам справиться с количеством. Вместо этого вы можете сохранить JSON или создать «гостевую» запись корзины в базе данных.