教程后的意外结果(omniauth twitter)没有路由匹配[GET]“/ auth / twitter”

时间:2012-01-07 19:02:01

标签: ruby-on-rails ruby gem omniauth

我一步一步地遵循了本指南:http://railscasts.com/episodes/241-simple-omniauth

当我点击将在Twitter上关注的按钮时,结果如下:

  

没有路线匹配[GET]“/ auth / twitter”

我做了几次尝试,以慢动作观看视频......但结果始终相同

2 个答案:

答案 0 :(得分:1)

将来,请尝试共享相关代码以进行调试。但是,请确保您拥有以下内容。

在您的路线中,请确保您有类似

的内容
devise_for :users, :controllers => {:omniauth_callbacks => "users/omniauth_callbacks" ...

并在您的设计初始化程序

config.omniauth :facebook, facebook_app_id, facebook_app_secret,
     { :scope => 'yourscopeshere', :client_options => {:ssl => {:ca_path => "/etc/ssl/certs"}} }

答案 1 :(得分:1)

您需要在Devise gem使用的模型中注释掉':omniauthable'(通常是模型'User'= user.rb文件):

class User < ActiveRecord::Base
  devise :database_authenticatable, :registerable, :recoverable,
         :rememberable, :trackable, :validatable # plus whatever other calls...
       # :omniauthable

  [...]

end

使用':omniauthable'调用意味着加载devise / omniauth组件(这会导致与omniauth设置冲突)。