質問編集履歴
2
ターミナルの情報を記述
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
状況が変わりましたので内容を変更しました
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
いいね機能を非同期にしたい。 リロードをすれば読み込まれる。
|
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
|
-
|
15
|
+
|
18
|
-
|
19
|
-
|
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: { t
|
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
|
-
$("#
|
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
|
-
|
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.
|
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.
|
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
|
-
|
215
|
+
|
250
216
|
|
251
217
|
|
252
218
|
|