質問編集履歴
5
追記
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
【Rails×Ajax】いいね
|
1
|
+
【Rails×Ajax】なぜかいいねボタンのPOSTだけ反応しない
|
body
CHANGED
@@ -3,36 +3,39 @@
|
|
3
3
|
いいね機能をAjaxで実装しようとしています。
|
4
4
|
[参考記事](https://qiita.com/naberina/items/c6b5c8d7756cb882fb20)
|
5
5
|
上記のQiitaを参考に実装しており、記事通りにコードを書きましたが適切に処理されません。
|
6
|
-
具体的には、いいね
|
6
|
+
具体的には、いいねの取り消しにはきちんとAjaxが効くのですが、いいねをしようとしても
|
7
|
-
|
7
|
+
「500 (Internal Server Error)」になります。ご教授いただけると幸いです。
|
8
8
|
|
9
9
|
どのように修正すればよろしいでしょうか。アドバイスお願いいたします。
|
10
10
|
|
11
11
|
### 発生している問題・エラーメッセージ
|
12
12
|
|
13
13
|
いいねボタンを押しても反応がなく、リロードしなければいいねが増えないといった状況
|
14
|
-
[エラー画
|
14
|
+
[エラー画面](https://i.gyazo.com/706565883715fd81882a42db9a4919de.png)
|
15
15
|
```
|
16
|
-
|
17
|
-
|
18
|
-
|
16
|
+
ActionView::Template::Error (No route matches {:action=>"destroy", :cafeteria_id=>#<Cafeteria id: 1, name: "ひだまり食堂", detail: "たのしい!", addres: "練馬区", user_id: 1, created_at: "2020-05-27 14:40:41", updated_at: "2020-05-27 14:40:41", image: "child.jpg">, :controller=>"likes"}, missing required keys: [:id]):
|
17
|
+
1: - if user_signed_in?
|
18
|
+
2: - if current_user.already_liked?(@cafeteria)
|
19
|
+
3: = link_to cafeteria_like_path(@cafeteria), method: :delete, remote: true do
|
20
|
+
4: %i.fas.fa-heart.like-btn
|
21
|
+
5: = @cafeteria.likes.count
|
22
|
+
6: - else
|
19
23
|
|
20
|
-
|
24
|
+
app/views/likes/_like.html.haml:3:in `_app_views_likes__like_html_haml___3068607622047569957_70180034584120'
|
21
|
-
|
22
|
-
app/
|
25
|
+
app/views/likes/create.js.haml:1:in `_app_views_likes_create_js_haml__514421159198398937_70180035075840'
|
23
26
|
```
|
24
27
|
|
25
28
|
### 該当のソースコード
|
26
29
|
|
27
30
|
```likesController
|
28
31
|
def create
|
29
|
-
@cafeteria = Cafeteria.find(params[:
|
32
|
+
@cafeteria = Cafeteria.find(params[:cafeteria_id])
|
30
33
|
@like = current_user.likes.create(cafeteria_id: params[:cafeteria_id])
|
31
34
|
@like.save
|
32
35
|
end
|
33
36
|
|
34
37
|
def destroy
|
35
|
-
@cafeteria = Cafeteria.find(params[:
|
38
|
+
@cafeteria = Cafeteria.find(params[:cafeteria_id])
|
36
39
|
@like = Like.find_by(cafeteria_id: params[:cafeteria_id], user_id: current_user.id)
|
37
40
|
@like.destroy
|
38
41
|
end
|
4
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -12,6 +12,15 @@
|
|
12
12
|
|
13
13
|
いいねボタンを押しても反応がなく、リロードしなければいいねが増えないといった状況
|
14
14
|
[エラー画像](https://i.gyazo.com/2798df89ecc1c650edf86a409fe5c376.png)
|
15
|
+
```
|
16
|
+
Processing by LikesController#create as JS
|
17
|
+
Parameters: {"cafeteria_id"=>"1"}
|
18
|
+
Completed 404 Not Found in 5ms (ActiveRecord: 0.0ms)
|
19
|
+
|
20
|
+
ActiveRecord::RecordNotFound (Couldn't find Cafeteria without an ID):
|
21
|
+
|
22
|
+
app/controllers/likes_controller.rb:4:in `create'
|
23
|
+
```
|
15
24
|
|
16
25
|
### 該当のソースコード
|
17
26
|
|
3
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -11,9 +11,8 @@
|
|
11
11
|
### 発生している問題・エラーメッセージ
|
12
12
|
|
13
13
|
いいねボタンを押しても反応がなく、リロードしなければいいねが増えないといった状況
|
14
|
-
[エラー画像](https://i.gyazo.com/
|
14
|
+
[エラー画像](https://i.gyazo.com/2798df89ecc1c650edf86a409fe5c376.png)
|
15
15
|
|
16
|
-
|
17
16
|
### 該当のソースコード
|
18
17
|
|
19
18
|
```likesController
|
2
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -11,7 +11,9 @@
|
|
11
11
|
### 発生している問題・エラーメッセージ
|
12
12
|
|
13
13
|
いいねボタンを押しても反応がなく、リロードしなければいいねが増えないといった状況
|
14
|
+
[エラー画像](https://i.gyazo.com/f901ec39de3d201a6361b2c902d8fb89.png)
|
14
15
|
|
16
|
+
|
15
17
|
### 該当のソースコード
|
16
18
|
|
17
19
|
```likesController
|
1
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
3
|
いいね機能をAjaxで実装しようとしています。
|
4
|
-
https://qiita.com/naberina/items/c6b5c8d7756cb882fb20
|
4
|
+
[参考記事](https://qiita.com/naberina/items/c6b5c8d7756cb882fb20)
|
5
5
|
上記のQiitaを参考に実装しており、記事通りにコードを書きましたが適切に処理されません。
|
6
6
|
具体的には、いいねボタンを押しても全く反応がなく、リロードを押してもずっといいねボタンが反応しなくなるといった状況です。
|
7
7
|
Likesコントローラーの「@cafeteria = Cafeteria.find(params[:id])」の記述を削除すれば、いいねボタンを押すたびにリロードは必要ですがいいねができるようになります。
|
@@ -59,6 +59,6 @@
|
|
59
59
|
|
60
60
|
### 試したこと
|
61
61
|
|
62
|
-
https://qiita.com/naberina/items/c6b5c8d7756cb882fb20
|
62
|
+
[参考記事](https://qiita.com/naberina/items/c6b5c8d7756cb882fb20)
|
63
63
|
この記事の通りに進めましたが上手くいきませんでした。
|
64
64
|
jqueyはインストールしており、モデルの設定もしっかりできていると思います。
|