Devise内置omniauth url helper导致未定义的方法错误

时间:2016-04-13 17:07:27

标签: ruby-on-rails facebook devise omniauth spree

我正在尝试将facebook身份验证添加到我的rails应用程序(它是在Spree上构建的,它拥有自己的设计基于设备的授权gem)。我按照https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview的步骤进行操作 但似乎设计不是建立网址助手。

当我尝试导航到包含要通过Facebook验证的链接的页面时,

<%= link_to "Sign in with Facebook", spree_user_omniauth_authorize_path(:facebook)%>

我收到以下错误:

undefined method `spree_user_omniauth_authorize_path' for #<#<Class:0x007ffc695c4fa0>:0x007ffc695a7798> 
Did you mean?  spree_user_registration_path

但是,如果我为该链接添加了一个垃圾桶并单击它,导致显示spree_user_omniauth_authorize_path的rails routing错误页面列在可用路径下。

这是来自狂欢授权gem的routes.rb的相关信息:

  devise_for :spree_user,
         :class_name => 'Spree::User',
         :controllers => { :sessions => 'spree/user_sessions',
                           :registrations => 'spree/user_registrations',
                           :passwords => 'spree/user_passwords',
                           :confirmations => 'spree/user_confirmations' },
         :skip => [:unlocks, :omniauth_callbacks],
         :path_names => { :sign_out => 'logout' },
         :path_prefix => :user

这是来自我的routes.rb的devise_for语句

devise_for :spree_user,
          :class_name => 'Spree::User',
          :only => [:omniauth_callbacks]

我正在使用设计3.5.6,omniauth 1.3.1和omnauth-facebook 3.0.0

我需要做些什么来实现这个目标?

0 个答案:

没有答案