1

rails3 beta4のdeviseでOpenIDをサポートするために、devise_openid_authenticatableを使用しています。しかし、rake db:migrateを実行すると、[undefined method`apply_schema']エラーが発生します。次のようになります。

==  DeviseCreateUsers: migrating ==============================================
-- create_table(:users)
rake aborted!
An error has occurred, all later migrations canceled:

undefined method `apply_schema' for #<ActiveRecord::ConnectionAdapters::TableDefinition:0x1036ffb40>

これが私の移行ファイルです:

クラスDeviseCreateUsersfalse
      t.openid_authenticatable
      t.recoverable
      t。覚えやすい
      t.trackable

      #t.confirmable
      #t.lockable:lock_strategy =>:failed_attempts、:unlock_strategy =>:both
      #t.token_authenticatable

      t。タイムスタンプ
    終わり

    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
  終わり

  def self.down
    drop_table:users
  終わり
終わり

そしてconfig.middleware.use Rack::OpenIDconfig/application.rbで

誰かが私に手を差し伸べることができますか?ありがとうございました!

4

2 に答える 2

8

私はdevise_openid_authenticatableの作者です。この問題は、Devise1.1.0安定版のAPIの変更が原因で発生しました。これをチェックし、使用する適切なAPIを選択するためのコードを追加しました。この修正は、新しいdevise_openid_authenticatable1.0.0.alpha3でリリースされています。

トラブルでごめんなさい!

于 2010-07-29T14:46:02.043 に答える
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

それで大丈夫です!

于 2010-07-07T06:57:01.113 に答える