2014-11-14 37 views
2

我爲我正在開發的webapp製作了購物車模型。這只是標準的紅寶石軌道模型。Rails中的唯一會話標識

它允許用戶將產品添加到購物車,但只有當它們是添加該項目的用戶時才向他們顯示。不過,我想讓尚未登錄的用戶將商品添加到購物車中。

現在我正在使用設計,所以我可以檢查current_user,並將該購物車項目分配給該用戶。但是,是否有類似的唯一會話ID或我可以用來模擬用戶的任何內容。所以我只顯示添加到一個人的項目?

原因是我希望我的用戶在要求他們登錄並創建帳戶之前儘可能多地執行訂購流程。

由於

+0

您可能想閱讀[this](http://guides.rubyonrails.org/security.html#sessions) – 2014-11-14 18:48:31

回答

4

此是創建一個購物車,然後添加該標識符到所述會話而不管它們在狀態記錄的簡單方法。

例如:

@shopping_cart = ShoppingCart.create(user: current_user) 
session[:shopping_cart_id] = @shopping_cart.id 

以後可以檢索當前購物車,如果有的話,爲before_action處理程序。

0

我工作過類似的問題。我所做的是,我用session_id。首先,您需要一個表格(例如product_list)來暫存product列表。將每個productsession_id一起填入此表。這將幫助您確定product_listactive user的關聯。在結賬時,將記錄從product_list複製到您的shopping_cart表中,並從product_list刪除記錄。

試試這個,它可能會幫助你解決目前的問題。