我使用devise_openid_authenticatable来支持带有rails3 beta4设计的OpenID . 但是当我运行rake db:migrate时,它会发生[undefined methodapplied_schema'] error.like this: ``
== DeviseCreateUsers: migrating ==============================================
-- create_table(:users)
rake aborted!
An error has occurred, all later migrations canceled:
undefined method apply_schema' for #<ActiveRecord::ConnectionAdapters::TableDefinition:0x1036ffb40>
``
这是我的迁移文件:
class DeviseCreateUsers false
t.openid_authenticatable
t.recoverable
t.rememberable
t.trackable
# t.confirmable
# t.lockable :lock_strategy => :failed_attempts, :unlock_strategy => :both
# t.token_authenticatable
t.timestamps
end
add_index :users, :identity_url, :unique => true
# add_index :users, :email, :unique => true
# add_index :users, :reset_password_token, :unique => true
# add_index :users, :confirmation_token, :unique => true
# add_index :users, :unlock_token, :unique => true
end
def self.down
drop_table :users
end
end
和 config.middleware.use Rack::OpenID
在config / application.rb中
有人能帮我一把吗?谢谢!
2 回答
我想我已经解决了这个问题 .
首先,键入
$ bundle show devise_openid_authenticatable
以查看捆绑的gem的安装位置 . 例如/Users/YOURNAME/.bundle/ruby/1.8/gems/devise_openid_authenticatable-1.0.0.alpha2
cd在此目录中并修改/lib/devise_openid_authenticatable/schema.rb从apply_schema :identity_url, String
到apply_devise_schema :identity_url, String
没关系!
我是devise_openid_authenticatable的作者 . 此问题是由Devise 1.1.0中的API更改稳定引起的 . 我添加了代码来检查并选择要使用的相应API . 修复程序在新的devise_openid_authenticatable 1.0.0.alpha3中发布 .
抱歉有问题!