1

私はRuby on Railsの初心者です。ショッピングカートを作成しています。そのため、ショッピングカートに製品を追加するためにログインする必要はなく、ショッピングカート内の製品を購入するためにログインする必要はありません。ショッピング カートをデータベースに保持する必要はありません。ショッピング カートをセッションに保存する必要があります。ショッピング カートには多くの line_items があり、各 line_item には製品があります。別のケースとして、ユーザーがログインしているときがあります。ショッピングカートをデータベースに保存する必要がある場合、この部分は機能していますが、ユーザーがログアウトしているため、多くの line_items を含むショッピングカートをセッションに追加する必要があります。検索しても役立つものが見つかりません。助けていただければ幸いです、任意のアイデア、私の問題を解決するためのリンク。ありがとう

すみません、私の英語は私の母国語ではありません

4

2 に答える 2

0

セッションのみの cart_id に保存する方が良いと思います。次に、すべてのアイテムがデータベースに保存されます(ログインしたユーザーの場合と同じです)次のようにすることができます:

def current_cart
  Cart.find(session[:cart_id]
  Rescue ActiveRecord::RecordNotFound
  cart = Cart.create
  session[:cart_id] = cart.id
end 

has_many line_items を作成し、destroy に依存を追加する Cart モデルを作成する必要があります

has_many :line_items , :dependent => :destroy 

ユーザーが購入を終えたら、その中にすべての line_item を含むカート項目を破棄できます。

于 2014-01-10T22:17:07.213 に答える