2017-09-16 4 views
0

J'essaie d'intégrer Twitter avec l'application dans mes rails.L'action 'twitter' est introuvable pour Devise :: OmniauthCallbacksController

Cependant, je reçois cette erreur L'action « twitter » n'a pas pu être trouvée pour Devise :: OmniauthCallbacksController

Mon fichier itinéraires contient:

devise_for :conrollers => {:omniauth_callbacks => "omniauth_callbacks"} 

Je l'ai vu quelques fils, mais pas tout à fait capable de résoudre ce problème. S'il vous plaît aider. Ceci est mon contrôleur

class OmniauthCallbacksController < Devise::OmniauthCallbacksController 
def twitter 
    raise request.env["omniauth.auth"].to_yaml 
end 

#alias_method :twitter, :all 

fin

Répondre

0

Depuis Devise::OmniauthCallbacksController hérite de DeviseController, pourquoi ne pas simplement ajouter votre méthode twitterDeviseController?

class DeviseController 
    def twitter 
    raise request.env["omniauth.auth"].to_yaml 
    end 
end 

ou vous pouvez faire:

class Devise::OmniauthCallbacksController 
    def twitter 
    raise request.env["omniauth.auth"].to_yaml 
    end 
end 

ou si vous avez un répertoire controllers/devise, cela pourrait fonctionner:

module Devise 
    class OmniauthCallbacksController 
    def twitter 
     raise request.env["omniauth.auth"].to_yaml 
    end 
    end 
end 
+0

Où dois-je ajouter la classe DeviseController? – user7693981

+0

Vous pouvez le mettre dans 'app/controllers' –

0

Vous devriez avoir un appel DEVISE dans le modèle de l'utilisateur. Ajoutez simplement un autre paramètre là

devise :database_authenticatable, :registerable, :confirmable....... 
     ......., :omniauth_providers: [:twitter]