質問: nilをすると、 同じユーザーがログイン、ログアウトを繰り返すたびにカートが 新規に作成されてしまい、ダメでした。 ユーザー1人に対してカートを1つ持たせるにはどのようなロジックにすればよいでしょうか? よろしくお願い致します。
回答: session[:card_id] が残っている? というのは不思議ですが、その前にuserとcartの関係定義ができていないのでは? と思われます。 User と Cart の関係定義のところを見せて下さい。 has_* とか belongs_toとかのところです ### 関連定義を追加しましょう class User に has_one :cart class Cart に belongs_to :user Userのcontroller の create で,成功した後で 成功したuser.cart.create としておきましょう そうすると、user.cart でcartが得られますのでsessionに取っておく必要がなくなります。 あと、Cart,Productとの関係では cartに has_many :products, through :cart_items productに has_many :carts, through :cart_items も定義しておくほうが良いかと。