在Rails3 beta4中使用OpenID进行设计但引发[undefined method`applied_schema']错误

时间:2010-07-06 13:23:57

标签: ruby-on-rails openid devise

我使用devise_openid_authenticatable来支持带有rails3 beta4设计的OpenID。 但是当我运行rake db:migrate时,它会发生[undefined method`applied_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>

== 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 / application.rb中的

有人能帮我一把吗?谢谢!

2 个答案:

答案 0 :(得分:8)

我是devise_openid_authenticatable的作者。此问题是由Devise 1.1.0中的API更改稳定引起的。我添加了代码来检查并选择要使用的相应API。修复程序在新的devise_openid_authenticatable 1.0.0.alpha3中发布。

对此事感到抱歉!

答案 1 :(得分: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, Stringapply_devise_schema :identity_url, String

没关系!