質問編集履歴
8
変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -645,3 +645,71 @@
|
|
645
645
|
has_many :carts, through: :cart_items
|
646
646
|
|
647
647
|
```
|
648
|
+
|
649
|
+
|
650
|
+
|
651
|
+
### 12/21追記
|
652
|
+
|
653
|
+
以下のように変更したら、とりあえずカートページに商品を追加することができました。
|
654
|
+
|
655
|
+
####cart.rb
|
656
|
+
|
657
|
+
```
|
658
|
+
|
659
|
+
belongs_to :user
|
660
|
+
|
661
|
+
has_many :cart_items
|
662
|
+
|
663
|
+
```
|
664
|
+
|
665
|
+
|
666
|
+
|
667
|
+
####cart_item.rb
|
668
|
+
|
669
|
+
```
|
670
|
+
|
671
|
+
belongs_to :product
|
672
|
+
|
673
|
+
belongs_to :cart
|
674
|
+
|
675
|
+
```
|
676
|
+
|
677
|
+
|
678
|
+
|
679
|
+
####product.rb
|
680
|
+
|
681
|
+
```
|
682
|
+
|
683
|
+
has_many :cart_items
|
684
|
+
|
685
|
+
```
|
686
|
+
|
687
|
+
|
688
|
+
|
689
|
+
####cart_controller.rb
|
690
|
+
|
691
|
+
```
|
692
|
+
|
693
|
+
def index
|
694
|
+
|
695
|
+
@cart = current_user.cart
|
696
|
+
|
697
|
+
@cart_items = @cart.cart_items
|
698
|
+
|
699
|
+
end
|
700
|
+
|
701
|
+
|
702
|
+
|
703
|
+
def add_item
|
704
|
+
|
705
|
+
@cart = current_user.cart
|
706
|
+
|
707
|
+
@cart_item = @cart.cart_items.build(product_id: params[:product_id])
|
708
|
+
|
709
|
+
@cart_item.save
|
710
|
+
|
711
|
+
redirect_to carts_path
|
712
|
+
|
713
|
+
end
|
714
|
+
|
715
|
+
```
|
7
関連付けの定義
test
CHANGED
File without changes
|
test
CHANGED
@@ -605,3 +605,43 @@
|
|
605
605
|
|
606
606
|
|
607
607
|
ご教授いただけますと幸いです。
|
608
|
+
|
609
|
+
|
610
|
+
|
611
|
+
###関連付け
|
612
|
+
|
613
|
+
user.rb
|
614
|
+
|
615
|
+
```
|
616
|
+
|
617
|
+
has_one :cart, dependent: :destroy
|
618
|
+
|
619
|
+
accepts_nested_attributes_for :cart
|
620
|
+
|
621
|
+
```
|
622
|
+
|
623
|
+
|
624
|
+
|
625
|
+
cart.rb
|
626
|
+
|
627
|
+
```
|
628
|
+
|
629
|
+
class Cart < ApplicationRecord
|
630
|
+
|
631
|
+
belongs_to :user
|
632
|
+
|
633
|
+
has_many :products, through: :cart_items
|
634
|
+
|
635
|
+
end
|
636
|
+
|
637
|
+
```
|
638
|
+
|
639
|
+
|
640
|
+
|
641
|
+
product.rb
|
642
|
+
|
643
|
+
```
|
644
|
+
|
645
|
+
has_many :carts, through: :cart_items
|
646
|
+
|
647
|
+
```
|
6
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -528,6 +528,8 @@
|
|
528
528
|
|
529
529
|
@cart = @user.build_cart
|
530
530
|
|
531
|
+
@cart.save
|
532
|
+
|
531
533
|
@user.save
|
532
534
|
|
533
535
|
end
|
5
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -528,7 +528,7 @@
|
|
528
528
|
|
529
529
|
@cart = @user.build_cart
|
530
530
|
|
531
|
-
user.save
|
531
|
+
@user.save
|
532
532
|
|
533
533
|
end
|
534
534
|
|
4
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -598,6 +598,8 @@
|
|
598
598
|
|
599
599
|
上記のように記載すると`undefined method cart_items for 2:Integer`という表示が出てしまいます。
|
600
600
|
|
601
|
+
おそらく、@user.cart.idがただの整数値だからひっぱってこれていないのかと思っています
|
602
|
+
|
601
603
|
|
602
604
|
|
603
605
|
ご教授いただけますと幸いです。
|
3
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -580,11 +580,11 @@
|
|
580
580
|
|
581
581
|
def add_item
|
582
582
|
|
583
|
-
user =
|
583
|
+
@user = current_user
|
584
|
-
|
584
|
+
|
585
|
-
@cart = user.cart
|
585
|
+
@cart = @user.cart.id
|
586
|
-
|
586
|
+
|
587
|
-
@cart_item =
|
587
|
+
@cart_item = @cart.cart_items.build(product_id: params[:product_id]) if @cart_item.blank?
|
588
588
|
|
589
589
|
@cart_item.save
|
590
590
|
|
@@ -596,6 +596,8 @@
|
|
596
596
|
|
597
597
|
```
|
598
598
|
|
599
|
+
上記のように記載すると`undefined method cart_items for 2:Integer`という表示が出てしまいます。
|
600
|
+
|
599
601
|
|
600
602
|
|
601
603
|
ご教授いただけますと幸いです。
|
2
new削除
test
CHANGED
File without changes
|
test
CHANGED
@@ -520,24 +520,14 @@
|
|
520
520
|
|
521
521
|
```
|
522
522
|
|
523
|
-
def
|
523
|
+
def create
|
524
|
+
|
524
|
-
|
525
|
+
super
|
526
|
+
|
525
|
-
@user = User.new
|
527
|
+
@user = User.new(configure_sign_up_params)
|
526
528
|
|
527
529
|
@cart = @user.build_cart
|
528
530
|
|
529
|
-
end
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
# POST /resource
|
534
|
-
|
535
|
-
def create
|
536
|
-
|
537
|
-
super
|
538
|
-
|
539
|
-
user = User.new(configure_sign_up_params)
|
540
|
-
|
541
531
|
user.save
|
542
532
|
|
543
533
|
end
|
1
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -511,3 +511,101 @@
|
|
511
511
|
【ECサイトのカート機能】
|
512
512
|
|
513
513
|
・https://qiita.com/kenzo-ta/items/b45994c5f3fdd87b6c50
|
514
|
+
|
515
|
+
|
516
|
+
|
517
|
+
###追記(2020/12/07)
|
518
|
+
|
519
|
+
users/registrations_controller.rb
|
520
|
+
|
521
|
+
```
|
522
|
+
|
523
|
+
def new
|
524
|
+
|
525
|
+
@user = User.new
|
526
|
+
|
527
|
+
@cart = @user.build_cart
|
528
|
+
|
529
|
+
end
|
530
|
+
|
531
|
+
|
532
|
+
|
533
|
+
# POST /resource
|
534
|
+
|
535
|
+
def create
|
536
|
+
|
537
|
+
super
|
538
|
+
|
539
|
+
user = User.new(configure_sign_up_params)
|
540
|
+
|
541
|
+
user.save
|
542
|
+
|
543
|
+
end
|
544
|
+
|
545
|
+
```
|
546
|
+
|
547
|
+
|
548
|
+
|
549
|
+
これを追加すると、rails cで確認した時に、Cartにuser_idが入っているのですが、
|
550
|
+
|
551
|
+
|
552
|
+
|
553
|
+
Product/show.erb
|
554
|
+
|
555
|
+
```
|
556
|
+
|
557
|
+
<h1>商品詳細</h1>
|
558
|
+
|
559
|
+
|
560
|
+
|
561
|
+
商品名:<%= @product.name %><br>
|
562
|
+
|
563
|
+
商品説明文:<%= @product.description %><br>
|
564
|
+
|
565
|
+
|
566
|
+
|
567
|
+
<%= button_to "カートに入れる", add_item_path(product_id: @product.id) %>
|
568
|
+
|
569
|
+
```
|
570
|
+
|
571
|
+
|
572
|
+
|
573
|
+
商品詳細のカートに入れるを押したあと、Carts#additemにて、user.cartを取得する方法がわかりません。
|
574
|
+
|
575
|
+
|
576
|
+
|
577
|
+
```
|
578
|
+
|
579
|
+
class CartsController < ApplicationController
|
580
|
+
|
581
|
+
|
582
|
+
|
583
|
+
def show
|
584
|
+
|
585
|
+
@cart = Cart.find(params[:id])
|
586
|
+
|
587
|
+
end
|
588
|
+
|
589
|
+
|
590
|
+
|
591
|
+
def add_item
|
592
|
+
|
593
|
+
user = User.find(params[:id])
|
594
|
+
|
595
|
+
@cart = user.cart
|
596
|
+
|
597
|
+
@cart_item = User.cart.cart_items.build(product_id: params[:product_id]) if @cart_item.blank?
|
598
|
+
|
599
|
+
@cart_item.save
|
600
|
+
|
601
|
+
redirect_to cart_path
|
602
|
+
|
603
|
+
end
|
604
|
+
|
605
|
+
end
|
606
|
+
|
607
|
+
```
|
608
|
+
|
609
|
+
|
610
|
+
|
611
|
+
ご教授いただけますと幸いです。
|