无法找到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
末
答
由于从DeviseController
Devise::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
答
你应该在用户模式有一项电话。只需添加另一个参数
devise :database_authenticatable, :registerable, :confirmable.......
......., :omniauth_providers: [:twitter]
我应该在哪里添加DeviseController类? – user7693981
你可以把它放在'app/controllers'中 –