Вы можете просто добавить хэш в пользовательский сеанс (который также создается, если он еще не вошел в систему).
session[:cart] = Array.new if !session[:cart]
А затем, когда он добавляет объект в корзину, вы можете добавить хеш вмассив в сеансе, как это.
session[:cart] << hash.new(:product_id => <id>, :quantity => 1337)
Конечно, вы также можете создать модель Cart
и записать cart_id
в сеанс, как это.
session[:cart_id] = <cart_id>
НоНедостаток использования этого метода (который обычно является лучшим выходом) состоит в том, что вы не можете уничтожить запись, пока сеанс не будет уничтожен, и поэтому у вас могут возникнуть проблемы со всеми старыми тележками.