質問編集履歴
1
質問内容の追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -197,4 +197,40 @@
|
|
197
197
|
end
|
198
198
|
end
|
199
199
|
|
200
|
-
```
|
200
|
+
```
|
201
|
+
加筆
|
202
|
+
> ユーザのカートを空にするmethodを仮に user.cart.clear としたときに、それをどのcontrllerのどのアクションのどの位置に入れるか
|
203
|
+
|
204
|
+
カートの中身を空にするタイミングは、orderが作成(注文が確定)されたタイミングで行いたいと考えております。
|
205
|
+
```ruby
|
206
|
+
class OrdersController < ApplicationController
|
207
|
+
|
208
|
+
def create
|
209
|
+
@order = Order.new(order_params)
|
210
|
+
@cart_items = CartItem.where(cart_id:current_cart.id)
|
211
|
+
redirect_to current_cart
|
212
|
+
|
213
|
+
user.cart.clear #カートの中身を空にする
|
214
|
+
|
215
|
+
end
|
216
|
+
|
217
|
+
end
|
218
|
+
|
219
|
+
```
|
220
|
+
---
|
221
|
+
|
222
|
+
> 履歴一覧を出すにあたって、何がわからないのでしょうか
|
223
|
+
|
224
|
+
現状ではカートの中に入っている商品はcart_itemで管理しています。cart_itemにはカートのid(cart_id)、商品のid(product_id)、商品の個数(quantity)の情報を保存しています。
|
225
|
+
|
226
|
+
|
227
|
+
orderでは1つのidに対して1つの**注文**を管理したいのですが、1回の注文で複数の商品を購入する場合もあるため、
|
228
|
+
order1つに対して複数のproduct_idを紐付ける必要がありそうですが、prpduct_idの個数が可変なため、それはできないと思い、他に方法はないか、というのが現時点での疑問になります。
|
229
|
+
|
230
|
+
例えばAさんというユーザー(user_id=2とする)はcart_id=3のカートと紐付いていて、現在カートに3つの商品が入っていたとすると、cart_item(CartItem.where(cart_id:3))は以下のようになります。
|
231
|
+
|
232
|
+

|
233
|
+
|
234
|
+
この状態で注文をした場合、orderを以下のようなイメージで作成できればと思っております(cart_idがuser_idになっても可)
|
235
|
+
|
236
|
+

|