ドットインストールで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~ にして続ける。
実装を指示された文章はこう
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からやり直してみようか……
どなたか心当たりのある方がいらっしゃれば助言をいただけると幸いです。