質問編集履歴
1
質問内容の追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -397,3 +397,75 @@
|
|
397
397
|
|
398
398
|
|
399
399
|
```
|
400
|
+
|
401
|
+
加筆
|
402
|
+
|
403
|
+
> ユーザのカートを空にするmethodを仮に user.cart.clear としたときに、それをどのcontrllerのどのアクションのどの位置に入れるか
|
404
|
+
|
405
|
+
|
406
|
+
|
407
|
+
カートの中身を空にするタイミングは、orderが作成(注文が確定)されたタイミングで行いたいと考えております。
|
408
|
+
|
409
|
+
```ruby
|
410
|
+
|
411
|
+
class OrdersController < ApplicationController
|
412
|
+
|
413
|
+
|
414
|
+
|
415
|
+
def create
|
416
|
+
|
417
|
+
@order = Order.new(order_params)
|
418
|
+
|
419
|
+
@cart_items = CartItem.where(cart_id:current_cart.id)
|
420
|
+
|
421
|
+
redirect_to current_cart
|
422
|
+
|
423
|
+
|
424
|
+
|
425
|
+
user.cart.clear #カートの中身を空にする
|
426
|
+
|
427
|
+
|
428
|
+
|
429
|
+
end
|
430
|
+
|
431
|
+
|
432
|
+
|
433
|
+
end
|
434
|
+
|
435
|
+
|
436
|
+
|
437
|
+
```
|
438
|
+
|
439
|
+
---
|
440
|
+
|
441
|
+
|
442
|
+
|
443
|
+
> 履歴一覧を出すにあたって、何がわからないのでしょうか
|
444
|
+
|
445
|
+
|
446
|
+
|
447
|
+
現状ではカートの中に入っている商品はcart_itemで管理しています。cart_itemにはカートのid(cart_id)、商品のid(product_id)、商品の個数(quantity)の情報を保存しています。
|
448
|
+
|
449
|
+
|
450
|
+
|
451
|
+
|
452
|
+
|
453
|
+
orderでは1つのidに対して1つの**注文**を管理したいのですが、1回の注文で複数の商品を購入する場合もあるため、
|
454
|
+
|
455
|
+
order1つに対して複数のproduct_idを紐付ける必要がありそうですが、prpduct_idの個数が可変なため、それはできないと思い、他に方法はないか、というのが現時点での疑問になります。
|
456
|
+
|
457
|
+
|
458
|
+
|
459
|
+
例えばAさんというユーザー(user_id=2とする)はcart_id=3のカートと紐付いていて、現在カートに3つの商品が入っていたとすると、cart_item(CartItem.where(cart_id:3))は以下のようになります。
|
460
|
+
|
461
|
+
|
462
|
+
|
463
|
+
![イメージ説明](4ec4030f7355ae38528ff547ac184d14.png)
|
464
|
+
|
465
|
+
|
466
|
+
|
467
|
+
この状態で注文をした場合、orderを以下のようなイメージで作成できればと思っております(cart_idがuser_idになっても可)
|
468
|
+
|
469
|
+
|
470
|
+
|
471
|
+
![イメージ説明](c85d7841d7dc5d625f71db47f5fee266.png)
|