无法找到Devise :: OmniauthCallbacksController的动作'叽叽喳喳'

问题描述:

我正试图在我的rails应用程序中集成twitter与devise。无法找到Devise :: OmniauthCallbacksController的动作'叽叽喳喳'

不过,我得到这个错误 行动“推特”无法找到设计:: OmniauthCallbacksController

我的路线文件包含:

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

我看到了几个线程,但不是很能够解决这个问题。请帮忙。 这是我的控制器

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

#alias_method :twitter, :all 

由于从DeviseControllerDevise::OmniauthCallbacksController继承,为什么不添加twitter方法DeviseController

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

,或者你可以这样做:

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

,或者如果你有一个controllers/devise目录,这可能工作:

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

我应该在哪里添加DeviseController类? – user7693981

+0

你可以把它放在'app/controllers'中 –

你应该在用户模式有一项电话。只需添加另一个参数

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