【问题标题】:Rails migration error database_authenticatableRails 迁移错误 database_authenticable
【发布时间】:2012-06-08 16:16:12
【问题描述】:

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

用于#的未定义方法`database_authenticable'

任务: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 并安装

【问题讨论】:

  • 迁移是什么样子的?

标签: ruby-on-rails database-migration


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 在没有辅助方法的情况下添加列真的那么难吗?我个人更喜欢它,因为有了新的模式,我可以准确地看到什么设计正在添加到我的数据库中,并进一步了解它。但是,每个人都有自己的看法。
    【解决方案3】:

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

    rails generate devise:install
    

    这会创建

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

    它定义了上面抱怨的方法 rake。

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

    【讨论】:

      【解决方案4】:

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

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

      如果您要向现有用户模型添加必填字段,则应检查this page on the devise wiki

      查看 main README 以了解 devise,其中包含有关在 Rails 上安装最新版 devise 的最新信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-28
        • 2015-04-04
        • 2012-09-02
        • 1970-01-01
        • 2017-02-28
        • 2016-10-02
        • 2017-09-26
        相关资源
        最近更新 更多