Rails で JavaScript 管理をbowerにしてから、method: :delete が効かなくなって devise sign_out できなくなった
前回の記事で無事 bower 管理で上手くいっていると思っていたけど・・
前段階: RailsアプリのJS外部ライブラリをbower管理にして、CircleCIがFailして泣きそうになった件・・ - まりぴよこのブログ
devise で sign_out できない!
No route matches [GET] "/users/sign_out"
コレが発生。 以前は普通にサインアウト出来てた様な・・
いつの間にかサインアウトできない仕様にしてしまっていた;;
devise sign_outできないで検索するとこんな感じ・・
・・・まさしく・・なんだが、GETにする対応で良いのだろうか・・・ 普通に今までDELETE送れてたのに・・なんかこの対応じゃダメな気がする・・
解決の糸口
ちょっと古めの記事ですが、コレが解決の糸口に!
JavaScriptを読み込むようにしたところ、以前のままで正常に動作するようになりました。
まさにコレじゃね!? 身に覚えあり・・・
app/aseets/javascripts/applicaton.js
読み込んでるjsはこんな状態だった。
//= require jquery //= require bootstrap-tagsinput //= require_tree .
最初に合ったやつから、 require jquery-ujs
が消えてる(というか消した記憶あり)
bootstra-taginputをBowerfileに入れたら、自動でjqueryがそっちに入ったので、 application.jsをいじくって、その時一緒に消した気がする・・
戻します!
//= require jquery //= jquery-ujs //= require bootstrap-tagsinput //= require_tree .
そんなファイルないので取り込めません!(そりゃそうだ)
Bowerfileに入れます!
asset 'bootstrap-tagsinput' asset 'jquery-ujs'
インストール!
$ ./bin/rake bower:install
asset pipeline を確認
$ ./bin/rails c > Rails.application.config.assets.paths
その他参考になったサイト
jquery-ujs
のハイフンをアンダースコアにしていて、インストール後にまだjs読み込めん!となったため、下記サイトのお世話に・・