0

私はdevise2.1.0を使用しています。開発では、物事は素晴らしいです。EC2でセットアップした新しいサーバーへのcapdeploy:migrationsを実行してみましたが、デバイスの移行でエラーが発生しました。私はruby1.9.3を実行しているrvmを使用しています。私のデータベースはMySqlであり、AmazonRDSを介して実行されています。エラーが発生した移行は次のとおりです。

def self.up
 change_table(:users) do |t|
  t.database_authenticatable :null => false
  t.recoverable
  t.rememberable
  t.trackable
 end

 add_index :users, :email,                :unique => true
 add_index :users, :reset_password_token, :unique => true

終わり

このエラーの場合:ActiveRecord :: ConnectionAdapters :: Table:0x00000004eb8968の未定義のメソッド `database_authenticatable'

devisegemがすでにサーバーにインストールされていることを確認しました。また、サーバーから直接移行を実行しようとしましたが、失敗します。

何が起こっているのか?

4

1 に答える 1

1

移行方法database_authenticatableは考案から外されたと思います。これらは2.0で非推奨になり、2.1で削除されました。

必須フィールドを明示的に作成する必要があります。例えば

def self.up
 change_table(:users) do |t|
   t.string :email
   t.string :encrypted_password
   t.timestamps
end

方法:DevisewikiからDevise2.0移行スキーマスタイルにアップグレードするを参照してください。

于 2012-06-18T19:55:23.430 に答える