Rails迁移错误database_authenticatable

时间:2012-06-08 16:16:13

标签: ruby-on-rails database-migration

- create_table(:admin_users) 耙子流产了! 发生错误,此操作和所有后​​续迁移都已取消:

对于#

未定义的方法`database_authenticatable'

任务:TOP => DB:迁移 怎么解决呢?感谢名单!

迁移

create_table(:admin_users) do |t|
      t.database_authenticatable :null => false
      t.recoverable
      t.rememberable
      t.trackable
      t.timestamps
end

在gemfile中安装所有宝石并安装

4 个答案:

答案 0 :(得分:1)

确保您已在Gemfile中设计并安装了捆绑包。

答案 1 :(得分:1)

答案很简单,设备团队很糟糕! 解决这个问题需要在GEMFILE中制作cnanges 宝石'设计',“〜> 1.5”

因为在1.5中存在database_authenticatable类型支持,并且在2.1.0中仅支持兼容性而不是创建具有此类型的字段 大家好。

答案 2 :(得分:1)

如果您刚开始使用设计(与先前版本的更新相比),您可能在执行rake db:migrate之前错过了以下步骤

rails generate devise:install

这会创建

create  config/initializers/devise.rb
create  config/locales/devise.en.yml

定义rake方法正在抱怨上面。

来源: https://github.com/plataformatec/devise

答案 3 :(得分:0)

使用Devise 2.0及更新版本,迁移帮助程序方法(例如t.database_authenticatable)不可用(如wiki here中所述)如果您正在为用户创建新模型,只需使用该设计像这样的迁移生成器:

rails g devise admin_users (If you're installing devise on your app)

如果您要将所需字段添加到现有用户模型,则应检查this page on the devise wiki

查看main README for devise,其中包含有关在Rails上安装最新版本的设备的最新信息。