削除機能を実装中、画面にこんなエラーが。
showのルーティングがうまくいっていません?
showはメソッド実装していないから出るかもしれいけど、もしかして削除のリクエストを送るときのリクエストのメソッドが違う?
Unknown action
The action 'show' could not be found for BlogsController
app/controllers/blogs_controller.rb
def destroy
@blog = Blog.find(params[:id])
@blog.destroy
redirect_to blogs_path
flash[:success] = 'delete success'
end
config/routes.rb
Rails.application.routes.draw do
resources :blogs
end
たくさんぐぐる。
ルーティングはresourcesでおまかせにしているし、リクエストのメソッド指定も合っていそう。
app/views/blogs/index.html.slim
= link_to '削除', blog_path(blog.id), method: :delete, class: 'btn btn-primary'
いろいろぐぐって、参考サイトにたどりつく。
app/assets/javascripts/application.js
//= require activestorage
//= require turbolinks
//= require jquery
//= require popper
//= require bootstrap
//= require_tree .
//= require jquery_ujs // <- これを足す
おそらくjquery-railsを入れているとこういうことになるっぽい。
参考サイト
forms - ruby on rails link_to delete method not working - Stack Overflow