質問編集履歴
2
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -231,3 +231,47 @@
|
|
231
231
|
|
232
232
|
|
233
233
|
Rails 5.2
|
234
|
+
|
235
|
+
|
236
|
+
|
237
|
+
### 追記
|
238
|
+
|
239
|
+
index.html.erbにて
|
240
|
+
|
241
|
+
|
242
|
+
|
243
|
+
```ruby
|
244
|
+
|
245
|
+
<% if @cart.blank? %>
|
246
|
+
|
247
|
+
<%= "カートは空です" %><br>
|
248
|
+
|
249
|
+
<% else %>
|
250
|
+
|
251
|
+
<% @cart.each do |item| %>
|
252
|
+
|
253
|
+
<tr>
|
254
|
+
|
255
|
+
<td>商品番号: <%= item.id %></td>
|
256
|
+
|
257
|
+
<td>価格: <%= item.price %>円</td><br>
|
258
|
+
|
259
|
+
<% sum += item.price %>
|
260
|
+
|
261
|
+
<%= button_to "Clear Product", cart_path(item), method: :patch, data: { confirm: 'Are you sure?' } %><br>
|
262
|
+
|
263
|
+
<% end %><br>
|
264
|
+
|
265
|
+
|
266
|
+
|
267
|
+
```
|
268
|
+
|
269
|
+
cart_path(item)とすることで送られているデータは`cart.controller def index`にて定義された `@cart = session[:cart].map { |item_id| Item.find(item_id) }`の `@cart`ではなく、 `def update`にて定義した `@cart`が入ること。
|
270
|
+
|
271
|
+
そしてCartはモデルではない為に、`destroy,update`などのメソッドは継承されていない為使用不可なこと。
|
272
|
+
|
273
|
+
しかし `@cart = Item.find(params[:id])`と記述を変えることで、 `@cart.destroy`を実行するとItemモデルのdestroyを実行することで再び大元のデータを消してしまうこと。
|
274
|
+
|
275
|
+
その代わり、 `@cart`は削除したいデータそのものを引っ張ってきていること。。
|
276
|
+
|
277
|
+
ここまでが分かりました。
|
1
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -20,7 +20,35 @@
|
|
20
20
|
|
21
21
|
変化なし。
|
22
22
|
|
23
|
-
|
23
|
+
terminalでは以下のような形になります。
|
24
|
+
|
25
|
+
delete/delete_atメソッドを用いても、railsの方でエラーは起きないのですが、削除した内容も反映されないといった具合になります。
|
26
|
+
|
27
|
+
```
|
28
|
+
|
29
|
+
Started PATCH "/cart/1" for 127.0.0.1 at 2018-08-25 16:19:19 +0900
|
30
|
+
|
31
|
+
Processing by CartController#update as HTML
|
32
|
+
|
33
|
+
Parameters: {"authenticity_token"=>"uCSoRxnlGlRIT/Z4YHFcppIA91GQpnIqbLXMtTZnOnsFi+1X4TNMGN49eBZO+qzgd+kCcZovUw48uosD2pdLjQ==", "id"=>"1"}
|
34
|
+
|
35
|
+
Item Load (0.4ms) SELECT "items".* FROM "items" WHERE "items"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
|
36
|
+
|
37
|
+
↳ app/controllers/cart_controller.rb:26
|
38
|
+
|
39
|
+
CACHE Item Load (0.0ms) SELECT "items".* FROM "items" WHERE "items"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
|
40
|
+
|
41
|
+
↳ app/controllers/cart_controller.rb:26
|
42
|
+
|
43
|
+
Item Load (0.4ms) SELECT "items".* FROM "items" WHERE "items"."id" = $1 LIMIT $2 [["id", 3], ["LIMIT", 1]]
|
44
|
+
|
45
|
+
↳ app/controllers/cart_controller.rb:26
|
46
|
+
|
47
|
+
Redirected to http://localhost:3000/cart
|
48
|
+
|
49
|
+
Completed 302 Found in 5ms (ActiveRecord: 0.8ms)
|
50
|
+
|
51
|
+
```
|
24
52
|
|
25
53
|
### 該当のソースコード
|
26
54
|
|