【Rails5】deviseでOmniauthが上手く動かなかったときのメモ

      2018/01/01

入れたgemは

http://ruby-rails.hatenadiary.com/entry/20140805/1407200400

http://qiita.com/kami_zh/items/94aec2d94a2b4e9a1d0b

基本的にはこのあたりの参考に進めていきました。

Twitterの認証画面まではすんなりといったのですが、サイト側に戻ってきた時に

まずはaction『twitter』が見つからないとのエラーが

The action 'twitter' could not be found for Devise::OmniauthCallbacksController

原因を探している中、rake routesしてみると、

devise/omniauth_callbacks?

作業進めていく中でルーティングが参考サイトと異なるなあとは思っていたのですが、コントローラーにdeviseなんてディレクトリはない。

もしかしたらdeviseカスタマイズでコントローラー生成していたのが原因かなーと思い、

route.rbに

を追記

すると別エラー。アクションは無事見つかった模様です。

ActiveModel::ForbiddenAttributesError

参考にしたサイトからコピペしてきたuser.rb

の部分が引っかかっている模様

ちょうどドンピシャな質問をしている掲示板を見つけました。

http://stackoverflow.com/questions/25399414/rails-4-1-5-omniauth-strong-parameters

ここの回答と同様の対応をしたところ無事に新規登録画面に戻ってきてくれました。

Railsのルーティングや規則に不慣れなことから来る初歩的なミスでした…

自分と同様の実装をお考えで、同様の事象に悩まされている方のお役に立てればと思います。

閲覧いただき、ありがとうございました。

こちらの記事もオススメ

Ruby on Railsで開発を行っていると この操作ってどうやるんだっけ?この機能を実装したいときはどのメソッドを使えばいいんだっけ?このエラー見たことあるけど、どうやって対

 - プログラミング ,