回答編集履歴
1
誤情報の修正
test
CHANGED
@@ -1,55 +1 @@
|
|
1
|
-
自己解決しました。コントラーラーの記述を以下のように変更し、
|
2
|
-
|
3
|
-
```ruby
|
4
|
-
|
5
|
-
def create
|
6
|
-
|
7
|
-
@cart_item = CartItem.new(cart_item_params)
|
8
|
-
|
9
|
-
@cart_item.customer_id = current_customer.id
|
10
|
-
|
11
|
-
|
1
|
+
もう1件の回答がベストアンサーです。
|
12
|
-
|
13
|
-
redirect_to cart_items_path
|
14
|
-
|
15
|
-
else
|
16
|
-
|
17
|
-
session[:cart_item] = @cart_item.attributes.slice(*cart_item_params.keys)
|
18
|
-
|
19
|
-
@genres = Genre.all
|
20
|
-
|
21
|
-
@item = Item.find_by(id:@cart_item.item_id)
|
22
|
-
|
23
|
-
redirect_to item_path(@item.id), flash: {alert: '※個数を選択して下さい'}
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
```
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
viewにhidden_fieldを設置してitem_idを持ってこれるようにしました。
|
34
|
-
|
35
|
-
```ruby
|
36
|
-
|
37
|
-
<%= form_for @cart_item do |f| %>
|
38
|
-
|
39
|
-
<%= render 'layouts/errors_messages', model: f.object %>
|
40
|
-
|
41
|
-
<%= f.hidden_field :item_id, value: @item.id %>
|
42
|
-
|
43
|
-
<%= f.select :quantity, options_for_select((1..20).to_a), include_blank: "個数選択" %>
|
44
|
-
|
45
|
-
<%= f.submit "カートに入れる" %>
|
46
|
-
|
47
|
-
<% end %>
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
```
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
今考えると、@cart_itemにはitem_idのバラバラな複数のレコードが入っているので、コントローラーで「@cart_item.item_id = 2」のようにしてもうまくいかないのは当たり前でした。
|