質問編集履歴

2

ターミナルの情報を記述

2020/12/10 00:29

投稿

Pro01x19
Pro01x19

スコア17

test CHANGED
@@ -1 +1 @@
1
- いいね機能を非同期にしたい。 リロードをすれば読み込まれる。
1
+ 未解決 いいね機能を非同期にしたい。 リロードをすれば読み込まれる。
test CHANGED
@@ -16,6 +16,66 @@
16
16
 
17
17
  と言った状態です
18
18
 
19
+ ### ターミナル
20
+
21
+
22
+
23
+ ```
24
+
25
+ Started POST "/posts/1/likes" for ::1 at 2020-12-10 09:27:06 +0900
26
+
27
+ Processing by LikesController#create as JS
28
+
29
+ Parameters: {"authenticity_token"=>"gLf2VbgAMI4UilZjwT13haZKK0LDa+wbfrBQ01UVsYyGDhEp7C/b4CKzqM3oFWv+ThkVcXMsN+FPFIUSlUwNbA==", "post_id"=>"1"}
30
+
31
+ Post Load (0.5ms) SELECT `posts`.* FROM `posts` WHERE `posts`.`id` = 1 LIMIT 1
32
+
33
+ ↳ app/controllers/likes_controller.rb:21:in `set_post'
34
+
35
+ User Load (0.7ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 ORDER BY `users`.`id` ASC LIMIT 1
36
+
37
+ ↳ app/controllers/likes_controller.rb:6:in `create'
38
+
39
+ (0.2ms) BEGIN
40
+
41
+ ↳ app/controllers/likes_controller.rb:6:in `create'
42
+
43
+ Post Load (0.4ms) SELECT `posts`.* FROM `posts` WHERE `posts`.`id` = 1 LIMIT 1
44
+
45
+ ↳ app/controllers/likes_controller.rb:6:in `create'
46
+
47
+ User Load (0.4ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1
48
+
49
+ ↳ app/controllers/likes_controller.rb:6:in `create'
50
+
51
+ Like Create (0.4ms) INSERT INTO `likes` (`user_id`, `post_id`, `created_at`, `updated_at`) VALUES (1, 1, '2020-12-10 00:27:06.440564', '2020-12-10 00:27:06.440564')
52
+
53
+ ↳ app/controllers/likes_controller.rb:6:in `create'
54
+
55
+ Post Update All (0.5ms) UPDATE `posts` SET `posts`.`likes_count` = COALESCE(`posts`.`likes_count`, 0) + 1 WHERE `posts`.`id` = 1
56
+
57
+ ↳ app/controllers/likes_controller.rb:6:in `create'
58
+
59
+ (1.3ms) COMMIT
60
+
61
+ ↳ app/controllers/likes_controller.rb:6:in `create'
62
+
63
+ Rendering likes/create.js.erb
64
+
65
+ Like Load (0.5ms) SELECT `likes`.* FROM `likes` WHERE `likes`.`post_id` = 1 AND `likes`.`user_id` = 1 LIMIT 1
66
+
67
+ ↳ app/models/post.rb:6:in `like_user'
68
+
69
+ Rendered likes/_like.html.erb (Duration: 5.1ms | Allocations: 1379)
70
+
71
+ Rendered likes/create.js.erb (Duration: 7.5ms | Allocations: 1731)
72
+
73
+ Completed 200 OK in 36ms (Views: 11.4ms | ActiveRecord: 5.0ms | Allocations: 10875)
74
+
75
+ ```
76
+
77
+
78
+
19
79
 
20
80
 
21
81
  ### 該当のソースコード

1

状況が変わりましたので内容を変更しました

2020/12/10 00:29

投稿

Pro01x19
Pro01x19

スコア17

test CHANGED
@@ -1 +1 @@
1
- いいね機能を非同期にしたい。 リロードをすれば読み込まれる。 ActionView::Template::Error
1
+ いいね機能を非同期にしたい。 リロードをすれば読み込まれる。
test CHANGED
@@ -4,57 +4,17 @@
4
4
 
5
5
  現在SNSのようなアプリのいいね機能を実装中です。
6
6
 
7
- ボタンになっている部分をクリックするとデータベースにはしっかりと記録が残り、リロードをすれば読み込まれます。がターミナルには
7
+ ボタンになっている部分をクリックするとデータベースにはしっかりと記録が残り、リロードをすれば読み込まれます。
8
+
9
+
10
+
8
-
11
+ ・非同期になっていない
9
-
10
-
12
+
11
- ### 発生している問題・エラーメッセージ
13
+ ターミナルにはステータス200、エラーメッセージなし
12
-
13
-
14
-
15
- ```
14
+
16
-
17
- ActionView::Template::Error (undefined local variable or method `post' for #<#<Class:0x00007fec95f91580>:0x00007fec95f8bb08>
15
+
18
-
19
- Did you mean? @post):
16
+
20
-
21
- 1: <% if user_signed_in? %>
22
-
23
- 2: <% if post.like_user(current_user.id) %>
24
-
25
- 3: <%= button_to post_like_path(like, post_id: post.id), method: :delete, id: "but-like-button", remote: true do %>
26
-
27
- 4: <i class="fas fa-star"></i>
28
-
29
- 5: <span>
30
-
31
- ```
32
-
33
- のメッセージが残っていました。
34
-
35
- メッセージ通り@postに変更をすると
36
-
37
- 一覧ページを表示る段階で
17
+ と言った状態で
38
-
39
- ```
40
-
41
- ActionView::Template::Error (undefined method `like_user' for nil:NilClass):
42
-
43
- 1: <% if user_signed_in? %>
44
-
45
- 2: <% if @post.like_user(current_user.id) %>
46
-
47
- 3: <%= button_to post_like_path(like, post_id: post.id), method: :delete, id: "but-like-button", remote: true do %>
48
-
49
- 4: <i class="fas fa-star"></i>
50
-
51
- 5: <span>
52
-
53
-
54
-
55
- ```
56
-
57
- のメッセージがブラウザ上に表示されます。
58
18
 
59
19
 
60
20
 
@@ -120,7 +80,9 @@
120
80
 
121
81
  create.js.erb
122
82
 
83
+
84
+
123
- $("#like-button").html("<%= j(render partial: 'like', locals: { tweets: @tweets, likes: @likes, like: @like}) %>")
85
+ $("#like-button-#{@post.id}").html("<%= j(render partial: 'like', locals: { posts: @posts, likes: @likes, like: @like, post: @post}) %>")
124
86
 
125
87
 
126
88
 
@@ -130,7 +92,11 @@
130
92
 
131
93
  destroy.js.erb
132
94
 
95
+
96
+
133
- $("#but-like-button").html("<%= j(render partial: 'like', locals: { tweets: @tweets, likes: @likes, like: @like}) %>")
97
+ $("#like-button-#{@post.id}").html("<%= j(render partial: 'like', locals: { posts: @posts, likes: @likes, like: @like, post: @post}) %>")
98
+
99
+
134
100
 
135
101
 
136
102
 
@@ -142,7 +108,7 @@
142
108
 
143
109
 
144
110
 
145
- before_action :set_post
111
+ before_action :set_post
146
112
 
147
113
 
148
114
 
@@ -152,7 +118,7 @@
152
118
 
153
119
  @likes = Like.where(post_id: params[:post_id])
154
120
 
155
- @post.reload
121
+ @posts = Post.all
156
122
 
157
123
 
158
124
 
@@ -168,9 +134,7 @@
168
134
 
169
135
  @likes = Like.where(post_id: params[:post_id])
170
136
 
171
- @post.reload
137
+ @posts = Post.all
172
-
173
-
174
138
 
175
139
  end
176
140
 
@@ -188,6 +152,8 @@
188
152
 
189
153
  end
190
154
 
155
+
156
+
191
157
  ```
192
158
 
193
159
  ```Ruby
@@ -246,7 +212,7 @@
246
212
 
247
213
 
248
214
 
249
- それぞれのアクションの一番手前にbinding.pryをかけようと試みたところ、コンソールにうつる前にターミナルにエラーメッセージが出てしまい、コンソールに触ることができませんでした。
215
+
250
216
 
251
217
 
252
218