【问题标题】:Devsie with OpenID throwing error uninitialized constant Devise::Schema带有 OpenID 的 Devsie 抛出错误未初始化常量 Devise::Schema
【发布时间】:2012-08-20 11:58:54
【问题描述】:

我使用 Devise 创建了一个新的 rails 应用程序 (3.2.8)。一切设置正确,应用程序启动,我可以注册和登录。

然后我添加了devise_openid_authenticatable,据我所知,它是用于在设计中集成 OpenID 的 gem。我按照https://github.com/nbudin/devise_openid_authenticatable上的说明进行操作

但是当我想做 rake db:migrate 我得到以下错误:

rake aborted!
uninitialized constant Devise::Schema

当运行rails s 我得到

/Users/me/.rvm/gems/ruby-1.9.3-p0/gems/devise_openid_authenticatable-1.0.0/lib/devise_openid_authenticatable/schema.rb:1:in `<top (required)>': uninitialized constant Devise::Schema (NameError)
from /Users/me/.rvm/gems/ruby-1.9.3-p0/gems/devise_openid_authenticatable-1.0.0/lib/devise_openid_authenticatable.rb:3:in `<top (required)>'
from /Users/me/.rvm/gems/ruby-1.9.3-p0/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
from /Users/me/.rvm/gems/ruby-1.9.3-p0/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
from /Users/me/.rvm/gems/ruby-1.9.3-p0/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `each'

我的 Gemfile 如下所示(最后两行):

gem 'devise'
gem 'devise_openid_authenticatable'

而User模型如下:

class User < ActiveRecord::Base
    devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :confirmable, :timeoutable, :openid_authenticatable
    attr_accessible :email, :password, :password_confirmation, :remember_me
end

如何解决错误?

【问题讨论】:

  • 我也遇到了同样的问题,你有没有找到另一个支持 devise 2.0+ 的 gem?

标签: ruby-on-rails devise openid


【解决方案1】:

devise_openid_authenticatable gem 看起来并没有得到维护和更新,无法与任何当前版本的 Devise 一起使用。

来自 gems gemspec:

gem.add_dependency "devise", "~> 1.3"

这意味着它只适用于 1.x 版本的 Devise。相反,我认为使用维护得更好的更新的东西可能会更好。浏览 Devise Wiki 上的此页面,您可能会找到所需的内容。 https://github.com/plataformatec/devise/wiki/OmniAuth%3A-Overview

【讨论】:

    猜你喜欢
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多