1

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

然后我添加devise_openid_authenticatable了我理解的用于在设计中集成 OpenID 的 gem。我按照https://github.com/nbudin/devise_openid_authenticable上的说明进行操作

但是当我想做 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'

用户模型如下:

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

如何解决错误?

4

1 回答 1

0

devise_openid_authenticatablegem 看起来好像没有经过维护和更新以与任何当前版本的 Devise 一起使用。

来自 gems gemspec:

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

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

于 2012-08-20T14:17:18.853 回答