0

我正在使用设计 2.1.0。在开发方面,事情很棒。我刚刚尝试进行上限部署:迁移到我在 EC2 中设置的新服务器,并在设计迁移时出错。我正在使用运行 ruby​​ 1.9.3 的 rvm。我的数据库是 MySql,它通过 Amazon RDS 运行。它错误的迁移是:

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_authenticable”

我已经确认设计 gem 已经安装在服务器上。我也尝试过直接从服务器运行迁移,但它失败了。

有什么想法吗?

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

请参阅如何:从 Devise wiki 升级到 Devise 2.0 迁移模式样式。

于 2012-06-18T19:55:23.430 回答