【问题标题】:Rails Seedbank gem uninitialized constantRails Seedbank gem 未初始化常量
【发布时间】:2016-11-13 06:07:27
【问题描述】:

我正在使用种子库 gem 并在种子文件的第一行获取未初始化的常量 用户.create(...)

我可以在没有种子库的情况下运行 rake db:seed。

我正在使用 mongoid。

我得到了种子库。

错误是:

rake aborted!
uninitialized constant User
/home/user/my_project/db/seeds.rb:4:in `block in define_seed_task'
/home/user/.rvm/gems/ruby-2.0.0-p247@myi/gems/seedbank-0.3.0/lib/seedbank/dsl.rb:24:in `module_eval'
/home/user/.rvm/gems/ruby-2.0.0-p247@myi/gems/seedbank-0.3.0/lib/seedbank/dsl.rb:24:in `block in define_seed_task'
/home/user/.rvm/gems/ruby-2.0.0-p247@myi/bin/ruby_executable_hooks:15:in `eval'
/home/user/.rvm/gems/ruby-2.0.0-p247@myi/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => db:seed => db:seed:common => db:seed:original

【问题讨论】:

  • 您的应用程序中是否定义了User 模型?
  • 是的。如果我在 gemfile 中没有 gem 'seedbank',rake db:seed 工作正常

标签: ruby-on-rails ruby-on-rails-3


【解决方案1】:

可能会导致未初始化的常量,因为您的数据库未设置用户模型。

https://github.com/james2m/seedbank 展示了如何使用种子库重置和设置数据库:

rake db:reset

这也会为数据库播种,所以如果命令成功运行,你就清楚了!重置命令由种子库扩展,但默认也存在于 ActiveRecord 中。

注意:运行 db:reset 命令将删除所有数据库内容,因此请谨慎使用。

【讨论】:

  • 我用的是mongodb,所以不用重置数据库
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多