0

-- create_table(:admin_users) rake 中止!发生错误,此迁移和所有后续迁移均已取消:

未定义的方法 `database_authenticable' for #

任务:TOP => db:migrate 如何解决?谢谢!

移民

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

在 gemfile 中拥有所有 gem 并安装

4

4 回答 4

1

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

于 2012-06-08T16:44:09.163 回答
1

答案是简单的设备团队很烂!!!为了解决这个需求,在 GEMFILE gem 'devise', "~> 1.5" 中做 cnanges

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

于 2012-06-08T17:07:46.260 回答
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

于 2013-07-08T11:38:10.907 回答
0

使用 Devise 2.0 和更新版本,迁移辅助方法(例如t.database_authenticable)不可用(如 wiki 上所述)如果您正在为用户制作新模型,只需使用 devise 迁移生成器,如下所示:

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

如果您将必填字段添加到现有用户模型,您应该在设计 wiki 上查看此页面

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

于 2012-06-08T16:48:17.590 回答