質問編集履歴

3

destroyアクションのコードを追加しました。

2018/04/20 08:23

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -40,6 +40,10 @@
40
40
 
41
41
  ```
42
42
 
43
+ before_action :correct_user, only: [:destroy]
44
+
45
+
46
+
43
47
  def create
44
48
 
45
49
  @post = Post.find(params[:comment][:post_id])
@@ -59,6 +63,36 @@
59
63
  flash.now[:danger] = 'コメントを投稿できませんでした。'
60
64
 
61
65
  render "posts/show"
66
+
67
+ end
68
+
69
+ end
70
+
71
+
72
+
73
+ def destroy
74
+
75
+ @comment.destroy
76
+
77
+ redirect_to post_url
78
+
79
+ end
80
+
81
+
82
+
83
+
84
+
85
+ private
86
+
87
+
88
+
89
+ def correct_user
90
+
91
+ @comment = current_user.comments.find_by(id: params[:id])
92
+
93
+ unless @comment
94
+
95
+ redirect_to post_url
62
96
 
63
97
  end
64
98
 

2

プロジェクトの構造とコントローラーのコードを書き足しました。

2018/04/20 08:23

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,8 @@
1
- 投稿したコメントを削除できるようにしたいのですが、下記のコードを入れると `undefined method `image_url' for nil:NilClass` という別のところでエラーが出ます。
1
+ 投稿したコメントを削除できるようにしたいのですが、下記のコードを入れると `undefined method "image_url" for nil:NilClass` という別のところでエラーが出ます。
2
+
3
+
4
+
5
+ プロジェクトの構造としては、postsという写真投稿機能があり投稿された写真の詳細ページ(posts/show.html.erb)にコメント欄とコメント一覧を設置しています。
2
6
 
3
7
 
4
8
 
@@ -32,6 +36,54 @@
32
36
 
33
37
 
34
38
 
39
+ ↓comments_controller.rb
40
+
41
+ ```
42
+
43
+ def create
44
+
45
+ @post = Post.find(params[:comment][:post_id])
46
+
47
+ @comment = @post.comments.build(comment_params)
48
+
49
+ @comment.user_id = current_user.id
50
+
51
+ if @comment.save
52
+
53
+ flash[:success] = 'コメントを投稿しました。'
54
+
55
+ redirect_to post_path(@post)
56
+
57
+ else
58
+
59
+ flash.now[:danger] = 'コメントを投稿できませんでした。'
60
+
61
+ render "posts/show"
62
+
63
+ end
64
+
65
+ end
66
+
67
+ ```
68
+
69
+
70
+
71
+ ↓posts_controller.rb
72
+
73
+ ```
74
+
75
+ def show
76
+
77
+ @post = Post.find_by(id: params[:id])
78
+
79
+ @comment = Comment.new
80
+
81
+ end
82
+
83
+ ```
84
+
85
+
86
+
35
87
  よろしくお願いします。
36
88
 
37
89
 

1

追記しました。

2018/04/20 08:14

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -33,3 +33,11 @@
33
33
 
34
34
 
35
35
  よろしくお願いします。
36
+
37
+
38
+
39
+
40
+
41
+ 追記
42
+
43
+ コメント削除のリンクを押せば削除はできているようなのですが、そこから画面を再表示する際にエラーが出ているようです。