【Rails/Vue】axios応答せよ
Vueのaxiosを使って APIで追加したデータを
取得して表示させることをやってみよう、 と思ったら延々とできず,
何が原因かと思ったら Railsのルーティングが沼ポイントだったという話です。
Rails 5.1 + Vue.js + Vuex + vue-routerの初期設定 - Qiitaで
紹介されているAPI使用のお馴染みのルーティング設定
Rails.application.routes.draw do root to: 'homes#welcome' namespace :api do end get '*path', to: 'homes#redirect_to_root' end
のように設定した‥つもりでした。
犯人は1行のルーティングだった
get '*path', to: 'hoge_controller#hoge_action'
を最下部に置いていなかったのが犯人でした。
これを最下部に置いていなかったが故に
今回の
「axiosの霊圧はあるんだけどなかなか思った挙動をしてくれない、 なんで?」
状態の沼へorz
ルーティング最下部に置かないとダークホールになってしまうらしいです。
routes.rb の 最下部 でこうだ
上の方に書くと優先マッチしてダークホールになってしまうかも
match '*path', to: 'errors#not_found', via: :all
axios構文がおかしいからかな?と思ってずっと
vueファイルいじっていても効果がなかったのは
まさかのRailsルーティングが原因だったとは