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

質問編集履歴

5

追記

2020/06/06 12:02

投稿

akaki
akaki

スコア15

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
- Likesコントローラーの@cafeteria = Cafeteria.find(params[:id])」の記述を削除れば、いねボタンを押すびにリロードは必要ですがいねがきるようになります。
7
+ 500 (Internal Server Error)」になりま。ご教授いただけると幸いです。
8
8
 
9
9
  どのように修正すればよろしいでしょうか。アドバイスお願いいたします。
10
10
 
11
11
  ### 発生している問題・エラーメッセージ
12
12
 
13
13
  いいねボタンを押しても反応がなく、リロードしなければいいねが増えないといった状況
14
- [エラー画](https://i.gyazo.com/2798df89ecc1c650edf86a409fe5c376.png)
14
+ [エラー画](https://i.gyazo.com/706565883715fd81882a42db9a4919de.png)
15
15
  ```
16
- Processing by LikesController#create as JS
17
- Parameters: {"cafeteria_id"=>"1"}
18
- Completed 404 Not Found in 5ms (ActiveRecord: 0.0ms)
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
- ActiveRecord::RecordNotFound (Couldn't find Cafeteria without an ID):
24
+ app/views/likes/_like.html.haml:3:in `_app_views_likes__like_html_haml___3068607622047569957_70180034584120'
21
-
22
- app/controllers/likes_controller.rb:4:in `create'
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[:id])
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[:id])
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

追記

2020/06/06 12:02

投稿

akaki
akaki

スコア15

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

追記

2020/06/06 11:45

投稿

akaki
akaki

スコア15

title CHANGED
File without changes
body CHANGED
@@ -11,9 +11,8 @@
11
11
  ### 発生している問題・エラーメッセージ
12
12
 
13
13
  いいねボタンを押しても反応がなく、リロードしなければいいねが増えないといった状況
14
- [エラー画像](https://i.gyazo.com/f901ec39de3d201a6361b2c902d8fb89.png)
14
+ [エラー画像](https://i.gyazo.com/2798df89ecc1c650edf86a409fe5c376.png)
15
15
 
16
-
17
16
  ### 該当のソースコード
18
17
 
19
18
  ```likesController

2

追記

2020/06/06 11:40

投稿

akaki
akaki

スコア15

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

修正

2020/06/06 11:28

投稿

akaki
akaki

スコア15

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はインストールしており、モデルの設定もしっかりできていると思います。