teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記の3

2020/01/13 11:21

投稿

winterboum
winterboum

スコア23654

answer CHANGED
@@ -28,4 +28,14 @@
28
28
 
29
29
  どこかで order なり cart なり確定する必要があります。
30
30
 
31
- User, Order, Cart の関係を教えてください。
31
+ User, Order, Cart の関係を教えてください。
32
+
33
+ 追記の3
34
+ モデル間の関連やモデル名の不自然なところはコメントで指摘しています。
35
+ さて
36
+ Orderが1:多だとすると、Order_idが決まるのはいつ、どこでですか?
37
+ その設計が無いようです。
38
+
39
+ n~~~結構厄介そう
40
+ Userと1:1なCartを作り、CartBoxLunchで注文を取り、注文確定したらOrderを作る
41
+ のほうが作りやすそう。

2

追記2

2020/01/13 11:20

投稿

winterboum
winterboum

スコア23654

answer CHANGED
@@ -19,4 +19,13 @@
19
19
  (0.5ms) COMMIT
20
20
  とあるのでCartItemは作られています。ただ見て判るように order がなになのかわからない状態で。
21
21
  ところが、CartItemは belongs_to :order になっているので、order_idなしにsave出来ないはずです。
22
- もしかしてこのlogを取った時は載せているプログラムとは違ってる?
22
+ もしかしてこのlogを取った時は載せているプログラムとは違ってる?
23
+
24
+ 追記2
25
+ >①order_idが代入されるのは、17行目のsession[:order_id] = @current_cart.id です。
26
+ >loginの時に定義しておりません。
27
+ とすると current_cart は永遠に nil です。
28
+
29
+ どこかで order なり cart なり確定する必要があります。
30
+
31
+ User, Order, Cart の関係を教えてください。

1

追記

2020/01/13 09:09

投稿

winterboum
winterboum

スコア23654

answer CHANGED
@@ -8,4 +8,15 @@
8
8
  もしかして この17行目?
9
9
  すると最初に 15行目に来た時はまだ未定義ですから@carrent_cartはnilです。
10
10
  もしかするとloginの時に定義してますか?
11
- そこを確認してください
11
+ そこを確認してください
12
+
13
+ 追記
14
+ 不思議、、、、
15
+ (0.2ms) BEGIN
16
+ ↳ app/controllers/cart_items_controller.rb:7
17
+ CartItem Create (0.9ms) INSERT INTO "cart_items" ("boxlunch_id", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id" [["boxlunch_id", 2], ["created_at", "2020-01-12 14:54:40.381901"], ["updated_at", "2020-01-12 14:54:40.381901"]]
18
+ ↳ app/controllers/cart_items_controller.rb:7
19
+ (0.5ms) COMMIT
20
+ とあるのでCartItemは作られています。ただ見て判るように order がなになのかわからない状態で。
21
+ ところが、CartItemは belongs_to :order になっているので、order_idなしにsave出来ないはずです。
22
+ もしかしてこのlogを取った時は載せているプログラムとは違ってる?