【问题标题】:No route matches [GET] “/auth/twitter/”没有路线匹配 [GET] “/auth/twitter/”
【发布时间】:2014-06-29 14:13:28
【问题描述】:

我正在开发可以使用 Twitter / Facebook 帐户登录的 Ruby on Rails 应用程序。在我不小心使用 bundle update 之前,它们一直运行良好。

突然我无法运行我的应用程序,因为终端/cmd 不断向我发送Please add 'devise :omniauthable' to the 'User' model

所以,我尝试添加:omniauthable,现在应用程序可以运行,但是当我尝试连接Facebook 或Twitter 时,我得到No route matches [GET] “/auth/twitter/”

有人知道为什么会这样吗?我试图删除 :omniauthable 就像在几个问题上所说的那样,但这没有帮助。

user.rb

devise :database_authenticatable, :registerable,
       :recoverable, :rememberable, :trackable, :omniauthable

omniauth.rb

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :twitter, Settings.twitter.key, Settings.twitter.secret
  provider :facebook, Settings.facebook.id, Settings.facebook.secret, scope: "email, publish_stream"
end

routes.rb

  # OAuth
  get 'auth/:provider/disconnect', to: 'sessions#disconnect'
  get 'auth/:provider/callback', to: 'sessions#connect'
  get 'auth/failure', to: redirect('/')
  get 'signout', to: 'sessions#destroy', as: 'signout'
  get 'facebook_disconnect', to: 'user_facebooks#facebook_disconnect', as: 'facebook_disconnect'
  get 'twitter_disconnect', to: 'user_twitters#twitter_disconnect', as: 'twitter_disconnect'

【问题讨论】:

  • 您可以发布您的config/routes.rb 文件吗?这将是最好的起点:)
  • 您是否在设计中使用omniauth?您是否将omniauth.rb 放在正确的文件夹中?
  • @RichPeck - 添加 routes.rb
  • @Dave - 是的,我正在使用带有设计的omniauth。我确信它已经在正确的文件夹中,因为它们之前运行良好。

标签: ruby-on-rails ruby facebook twitter devise


【解决方案1】:

尝试配置devise.rb

Devise.setup do |config| 
  config.omniauth :twitter, "TWITTER_KEY", "TWITTER_SECRET"
end

【讨论】:

  • 我尝试将 devise.rb 配置为您的代码,但仍然无法正常工作。路线仍然不匹配。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-15
  • 2011-12-11
  • 2015-09-27
  • 2015-10-15
相关资源
最近更新 更多