Разработайте OpenID в Rails3 beta4, но вызовите ошибку [undefined method `apply_schema '] - PullRequest
1 голос
/ 06 июля 2010

Я использую devise_openid_authenticatable для поддержки OpenID с devise в rails3 beta4. Но когда я запускаю rake db: migrate, возникает ошибка [undefined method `apply_schema ']. Вот так: </p> <pre><code>== 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 ]

8 голосов
/ 29 июля 2010

Я автор devise_openid_authenticatable.Эта проблема была вызвана изменением API в стабильной версии Devise 1.1.0.Я добавил код, чтобы проверить это и выбрать соответствующий API для использования.Исправление выпущено в новом devise_openid_authenticatable 1.0.0.alpha3.

Извините за проблемы!

2 голосов
/ 07 июля 2010

Я думаю, что я исправил эту проблему.

Сначала введите $ bundle show devise_openid_authenticatable, чтобы увидеть, где установлен гем в комплекте.например, /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

Все в порядке!

...