質問編集履歴
5
参考にした記事のリンクを載せました
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
自分のポートフォリオのアプリケーションに投稿に対して高評価できる機能を実装しようと思ったのですが、投稿が成功して投稿一覧ページに遷移するときにmodelの部分でエラーになってしまいます
|
2
2
|
ユーザー管理はdeviseを使っています。
|
3
|
-
|
3
|
+
参照させていただいた記事はこちらの記事です
|
4
|
+
↓
|
5
|
+
[Rails いいね機能のミニアプリを作ろう](https://qiita.com/keitah/items/12b50c86bcfa9cfb4db9#likerb)
|
4
6
|
エラー画面に出てきているコードは、
|
5
7
|
こちらの部分です
|
6
8
|
user.rbの部分のコードです
|
4
エラー画面で引っかかっているコードを載せました。
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
高評価できる機能を作りたいのに
|
1
|
+
高評価できる機能を作りたいのにundefined method `id' for nil:NilClassになってしまう。
|
body
CHANGED
@@ -1,7 +1,16 @@
|
|
1
1
|
自分のポートフォリオのアプリケーションに投稿に対して高評価できる機能を実装しようと思ったのですが、投稿が成功して投稿一覧ページに遷移するときにmodelの部分でエラーになってしまいます
|
2
|
+
ユーザー管理はdeviseを使っています。
|
2
3
|
|
4
|
+
エラー画面に出てきているコードは、
|
5
|
+
こちらの部分です
|
6
|
+
user.rbの部分のコードです
|
7
|
+
```
|
8
|
+
def already_liked?(post)
|
9
|
+
self.likes.exists?(post_id: post.id)
|
10
|
+
end
|
11
|
+
```
|
12
|
+
|
3
13
|
エラー文は以下の通りです
|
4
|
-
|
5
14
|
```
|
6
15
|
NoMethodError in Posts#index
|
7
16
|
undefined method `id' for nil:NilClass
|
3
試してみたことに修正を加えました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -261,4 +261,14 @@
|
|
261
261
|
```
|
262
262
|
として、postの部分の情報をとってこれるようにしようと思ったのですが、そしたらボタンそのものが表示されなくなってしまいました。
|
263
263
|
ですのでそれを消したあとに、パスの部分の(@post)の部分を消してみたところ、投稿は表示されたのですが、いいねボタン自体は機能していなかったです。
|
264
|
-
ですので、やっぱり`post_id :post.id`の部分が機能していないあるいは、postのidをどこかで撮ってこれていないからではないかと考えています。
|
264
|
+
ですので、やっぱり`post_id :post.id`の部分が機能していないあるいは、postのidをどこかで撮ってこれていないからではないかと考えています。
|
265
|
+
|
266
|
+
回答者様にアドバイスを頂いたので、
|
267
|
+
``` <% if current_user.already_liked?(@post) %>
|
268
|
+
<%= button_to 'いいねを取り消す', post_like_path(post), method: :delete %>
|
269
|
+
<% else %>
|
270
|
+
<%= button_to 'いいね', post_likes_path(post) %>
|
271
|
+
<% end %>
|
272
|
+
|
273
|
+
```
|
274
|
+
に変えてみたのですがやはり同じエラーでした。
|
2
試したことを追記しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -228,4 +228,37 @@
|
|
228
228
|
</div>
|
229
229
|
</div>
|
230
230
|
</div>
|
231
|
-
```
|
231
|
+
```
|
232
|
+
|
233
|
+
# 試したこと
|
234
|
+
ビューの部分に
|
235
|
+
|
236
|
+
```
|
237
|
+
<div class="like">
|
238
|
+
<h3>いいね件数: <%= post.likes.count %></h3>
|
239
|
+
<div class = 'like-button'>
|
240
|
+
<% if current_user.already_liked?(@post) %>
|
241
|
+
<%= button_to 'いいねを取り消す', post_like_path(@post), method: :delete %>
|
242
|
+
<% else %>
|
243
|
+
<%= button_to 'いいね', post_likes_path(@post) %>
|
244
|
+
<% end %>
|
245
|
+
</div>
|
246
|
+
```
|
247
|
+
こちらの部分を
|
248
|
+
|
249
|
+
```
|
250
|
+
<div class="like">
|
251
|
+
<h3>いいね件数: <%= post.likes.count %></h3>
|
252
|
+
<div class = 'like-button'>
|
253
|
+
<%if @post.present?%>
|
254
|
+
<% if current_user.already_liked?(@post) %>
|
255
|
+
<%= button_to 'いいねを取り消す', post_like_path(@post), method: :delete %>
|
256
|
+
<% else %>
|
257
|
+
<%= button_to 'いいね', post_likes_path(@post) %>
|
258
|
+
<% end %>
|
259
|
+
<% end %>
|
260
|
+
</div>
|
261
|
+
```
|
262
|
+
として、postの部分の情報をとってこれるようにしようと思ったのですが、そしたらボタンそのものが表示されなくなってしまいました。
|
263
|
+
ですのでそれを消したあとに、パスの部分の(@post)の部分を消してみたところ、投稿は表示されたのですが、いいねボタン自体は機能していなかったです。
|
264
|
+
ですので、やっぱり`post_id :post.id`の部分が機能していないあるいは、postのidをどこかで撮ってこれていないからではないかと考えています。
|
1
誤字脱字があったので修正しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,5 @@
|
|
1
|
-
|
1
|
+
自分のポートフォリオのアプリケーションに投稿に対して高評価できる機能を実装しようと思ったのですが、投稿が成功して投稿一覧ページに遷移するときにmodelの部分でエラーになってしまいます
|
2
2
|
|
3
|
-
[Rails いいね機能のミニアプリを作ろう](https://qiita.com/keitah/items/12b50c86bcfa9cfb4db9#likerb)
|
4
3
|
エラー文は以下の通りです
|
5
4
|
|
6
5
|
```
|