前提・実現したいこと
<%= link_to("削除", "/posts/#{@post.id}/destroy", {method: "post"}) %>を使って、post routeに飛ばしたいです。
Rails6で投稿アプリ開発中にPostメソッドがGetメソッドとして認識されているためNo route matches [GET]になってしまいます。
この問題について調べるほど新たな問題が出てきて、何から手をつけて良いのかわからない状況です。
発生している問題・エラーメッセージ
No route matches [GET]
該当のソースコード
~/app/views/posts/detail.html.erb~ <%= link_to("削除", "/posts/#{@post.id}/destroy", {method: "post"}) %> ~/config/routes.rb~ post "posts/:id/destroy" => "posts#destroy" ~app/controllers/posts_controller.rb~ def destroy redirect_to("/posts/index") end
試したこと
ここから本題なのですが上記問題を解決するために様々な問題が出てきました
1. rails routesを行うと
省略
POST /posts/:id/destroy(.:format)
省略
と出ており、routeではきちんとPostと認識されているように感じた。
なので https://teratail.com/questions/256667 こちらに『link_toでGET以外のメソッドを投げるには、JavaScriptの力が必要です。jquery-ujsあるいはrails-ujsといったJavaScriptライブラリは、読み込んでいますでしょうか?』 とあったため、
/review_app/app/javascript/packs/application.jsを確認すると
require("@rails/ujs").start()があったのでJavaScriptライブラリ書かれていました。
2 .ここは推測も混ざっていますが、
上記のJSが動作していないのかな?とかんがえ、
/review_app/app/views/layouts/application.html.erbの
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
を以前消していたことを思い出し、これを復活させたところ、
Webpacker::Manifest::MissingEntryError in Posts#detail が出ました。
3 Webpacker::Manifest::MissingEntryError inを解決するため、
(https://teratail.com/questions/279759) こちらのサイトを確認し、
ubuntu:~/environment/review_app (master) $ bin/webpack-dev-server と打ったところ
yarn run v1.22.4
error Command "webpack-dev-server" not found.
と出てしまいました。
4 error Command "webpack-dev-server" not found.
こちらを調べたところ、
https://qiita.com/___xxx_/items/69bc75c4b6625ddfb508 こちらの記事で「
解決コマンド
yarnのアップグレード
$ brew upgrade yarn
webpackerインストール
$ bundle exec rails webpacker:install
webpack-dev-server立ち上げ
$ bin/webpack-dev-server
」
とあったのですが、
environment/review_app (master) $ brew upgrade yarn
Command 'brew' not found, but can be installed with:
sudo apt install linuxbrew-wrapperと出てしまい、
sudo apt install linuxbrew-wrapper でインストールしたが
bundle exec rails webpacker:install と打つと、
conflict config/webpacker.yml
Overwrite /home/ubuntu/environment/review_app/config/webpacker.yml? とでる。
まとめ
まずwebpack-dev-server の立ち上げについてご教授頂きたいのですが、 私の解釈の間違いでややこしくしている可能性もありますので、もし、根本原因がありましたら、そちらもご教授いただけたらとおもいます。
よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
rails6
cloud9使用です
回答1件
あなたの回答
tips
プレビュー