ruby-on-rails - 为什么会出现 NameError : uninitialized constant simply making a rake db:create on a new machine

标签 ruby-on-rails ruby

我的虚拟机上有一个 Rails 应用程序。环境就是发展,我经常致力于此。我从新 nserver 上的 repo 中提取代码,并且始终将 RAILS_ENV 设置为 development 我调用第一个命令 rake db:migrate 和我知道我的类(class)之一是 NameError:未初始化的常量。

如果我的代码和环境相同,这怎么可能?如果可以,我的虚拟机上的自动加载配置正确。

    config.autoload_paths << Rails.root.join('lib')
    config.autoload_paths += Dir[Rails.root.join('app', 'api', '**', '**', '*')]

而找不到的类在app/api/nameofclass/anothername/api.rb

最佳答案

使用 DKIM 作为名称会有问题,因为自动加载器将其映射到路径中的 d_k_i_m/。尽可能避免创建包含大写字母的目录或文件,这会导致区分大小写的文件系统出现困惑。

app/api/domains/dkim/api.rb 应该包含 Domains::Dkim::Api

如果你想使用一些非标准的命名系统,你必须手动强制加载你的东西,自动加载器不会为你做这件事。

自动加载指令可能应该是:

config.autoload_paths << Rails.root.join('app', 'api')

您不想将每个文件都包含在您的自动加载路径中。

关于ruby-on-rails - 为什么会出现 NameError : uninitialized constant simply making a rake db:create on a new machine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40726139/

相关文章:

ruby-on-rails - 如何使辅助方法在 Rails 集成测试中可用?

ruby - 我如何...截断数组中的字符串

ruby-on-rails - Ruby on Rails 教程第 11 章 : Rspec tests fail on follower/following section

ruby - 如何避免重复条目抓取网站

javascript - Ajax 调用 Rails 返回缺少模板

javascript - 如何在 jquery/rails 中渲染新字段?

ruby-on-rails - 升级到 Rails 4 后出现 DelayedJob 错误:Delayed::DeserializationError: Job failed to load

javascript - Rails 4.1.6 form_for Coffeescript 在多个 View 上不起作用

ruby-on-rails - ruby rails : check the amount of products a shop owns

ruby - "Foo"和 "Foo.class"有什么区别?