電子メールとパスワードを使用してサインアップするか、Facebook を使用してサインアップしようとしています。
https://github.com/plataformatec/devise/wiki/OmniAuth%3a-Overviewを使用してみました
各手順に従いましたが、Rails サーバーを実行しようとすると、ターミナルで次のエラーが発生します。
「users/omniauth.callbacks」はサポートされているコントローラー名ではありません
これは私が作成するように指示されたファイル (app/controllers/users/omniauth_callback_controllers.rb) を参照していると思いましたが、ファイルを削除しても何も起こりません。Devise を実装し、Omniauth gem もインストールしました。私は間違って何をしていますか?
私が取った手順:
- Gemfileに gem omniauth-facebookを追加しました
- ターミナルでバンドルのインストールを実行しました
- rails g migration AddColumnsToUsers プロバイダー uid を実行しました
- rake db:migrateを実行しました
- ファイル config/initializers/devise.rbに行config.omniauth :facebook, "APP_ID", "APP_SECRET"を追加しました
- 行<%= link_to "Sign In With Facebooks", user_omniauth_authorize_path(:facebook %>を使用して、サインアップ ページにサインアップへのリンクを追加しました
- devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks}という行を config/routes.rb ファイルに追加しました
- (私が混乱した部分) 新しいフォルダー、users、および新しいファイル omniauth_callbacks_controller.rb (ファイル パスは app/controllers/users/omniauth_callbacks_controller.rb) を追加し、コードを含めました (Imgur リンクを参照)。
- app/models/user.rb ファイルにコードを追加 (Imgur リンクを参照)