2014-11-14 3 views
2

내가 작업중인 webapp에 장바구니 모델을 만들었습니다. 그것은 레일 모델의 표준 루비였습니다.레일에서 고유 한 세션 ID

사용자는 shoppingcart에 제품을 추가 할 수 있지만 항목을 추가 한 사용자 인 경우에만 표시합니다. 그러나 로그인하지 않은 사용자가 장바구니에 항목을 추가 할 수있게하고 싶습니다.

지금 당장 나는 devise를 사용하여 current_user를 확인하고 해당 장바구니 항목을 해당 사용자에게 할당 할 수 있습니다. 그러나 비슷한 고유 세션 ID 또는 사용자를 시뮬레이트하는 데 사용할 수있는 모든 것이 있습니다. 그래서 한 사람에게만 추가 된 항목 만 표시합니까?

이유는 사용자가 로그인하여 계정을 만들기 전에 가능한 한 많은 주문 프로세스를 거쳐야한다는 것입니다.

감사

+0

[this] (http://guides.rubyonrails.org/security.html#sessions)를 읽어보십시오. –

답변

4

이 상태에 관계없이 기록의 세션에 해당 식별자를 추가 한 다음 쇼핑 카트를 생성하고 대한 간단한 방법. 예를 들어

:

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

나중에 당신이 before_action 처리기로있는 경우, 현재 쇼핑 카트를 검색 할 수 있습니다.

0

비슷한 문제가 발생했습니다. 내가 한 일은 session_id입니다. 먼저 임시 목적으로 product 목록을 보유 할 테이블 (예 : product_list)이 필요합니다. 각 productsession_id과 함께이 테이블에 채우십시오. 이렇게하면 과 active user의 연결을 식별하는 데 도움이됩니다. 체크 아웃시 product_list의 레코드를 shopping_cart 테이블에 복사하고 product_list에서 레코드를 삭제하십시오.

시도해보십시오. 현재 문제를 해결하는 데 도움이 될 수 있습니다.