2017-02-01 2 views
1

J'essaie de créer une application Rails en utilisant Devise avec les options Omniauth pour la gestion des utilisateurs. J'essaie de faire fonctionner un service OAuth à la fois, en commençant par Github. La page d'accueil se charge, je clique sur me connecter avec Github, j'accède à la page d'autorisation Github et j'autorise, puis la redirection commence et j'obtiens le message d'erreur The action 'github' could not be found for Devise::OmniauthCallbacksController.Devise OmniauthsController non utilisé

Je ne comprends pas pourquoi je reçois cette erreur b/c j'ai défini l'action dans app/controllers/utilisateurs/omniauth_callbacks_controller.rb comme suit:

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController 

    def github 
    @user = User.from_omniauth(request.env["omniauth.auth"]) 
    sign_in_and_redirect @user 
    end 

end 

app/modèles/user.rb

class User < ApplicationRecord 
    # Include default devise modules. Others available are: 
    # :confirmable, :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable,  :omniauthable, :confirmable, :lockable, :omniauth_providers => [:github] 

end 

et app/config/routes.rb

Il essaie de fallback la defau Je devise OmniauthsCallbacksController au lieu d'utiliser mes utilisateurs/omniauths_callbacks_controller.rb, mais je ne sais pas pourquoi. Aucune suggestion?

Peut-être des informations pertinentes:

ruby v 2.4.0 
rails v 50.0.1 
omniauth v 1.3.2 
devise v 4.2.0 
omniauth-github v 1.1.2 

Répondre

1

Essayez de remplacer

devise_for :users, :controller => { :omniauth => "users/omniauth_callbacks" } 

à

devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" } 
+0

Mise à jour question. C'est le nom du fichier, j'avais auparavant une faute de frappe de ma part. –

+0

Cela l'a réparé, merci. –