読者です 読者をやめる 読者になる 読者になる

まりぴよこのブログ

日々の日記。技術ネタでまとまりきってないものの記録、伝わる文章の書き方を練習とか。

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できないで検索するとこんな感じ・・

qiita.com

・・・まさしく・・なんだが、GETにする対応で良いのだろうか・・・ 普通に今までDELETE送れてたのに・・なんかこの対応じゃダメな気がする・・

解決の糸口

ちょっと古めの記事ですが、コレが解決の糸口に!

kaorumori.hatenadiary.com

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

その他参考になったサイト

stackoverflow.com

jquery-ujs のハイフンをアンダースコアにしていて、インストール後にまだjs読み込めん!となったため、下記サイトのお世話に・・

qiita.com