0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ruby on Rails 5 入門 #27 コメントを削除できるようにしよう で詰まった

Last updated at Posted at 2018-07-08

ドットインストールでRuby on Railsの勉強を始めたが、27〜28のコメントの削除の段階で詰まってしまった。

記事の作成及び削除に関する実装までは
説明の通りにやってうまくいき、削除もできた

しかし、コメントの方になって何故かうまくいかない

まずはshow.html.erbに対して以下の記載

<%= link_to '[Delete]',
    post_comment_path(@post, comment),        
    method: :delete,
    class: 'command',
    data: { confirm: 'Delete OK?' } %>

この
post_comment_path(@post, comment),
の部分、
post_comments_path(@post, comment),
にしないとURLジェネレートエラーが出る

ActionController::UrlGenerationError in Posts#show

No route matches {:action=>"destroy", :controller=>"comments", :id=>nil, :post_id=>"10"}, missing required keys: [:id]

どうも :id が無いと言うのはわかった。

とりあえずpost_comments~ にして続ける。

実装を指示された文章はこう

comment.controller
def destroy
    @post = Post.find(params[:post_id])
    @comment = @post.comments.find(params[:id])
    @comment.destroy
    redirect_to post_path(@post)
end

書いてあることは多分間違っていない。
しかしいざ実行すると、

No route matches [DELETE] "/posts/10/comments.5"
Routes match in priority from top to bottom

と、そんなルートねぇよ
と追い返されてしまう……

一体何が原因なのか、現状では全く見当がつかない。

ひとまず理解できるまで、
初級の学習を#1からやり直してみようか……

どなたか心当たりのある方がいらっしゃれば助言をいただけると幸いです。

0
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?