我无法在Heroku中运行迁移,我认为这是由于我在lib
目录中创建的模块。执行命令heroku run rake db:migrate
后,我收到以下错误:
uninitialized constant ApplicationController::PgTools
/app/app/controllers/application_controller.rb:4:in <class:ApplicationController>
应用程序控制器的第4行是include PgTools
,可以访问我创建的PgTools模块中的方法。
尽管heroku迁移失败,但我能够在本地开发环境中运行rake db:migrate
(请注意两个环境都使用postgres数据库)。
我的application.rb文件中还有以下两行
config.autoload_paths += %W(#{config.root}/lib)
config.autoload_paths += Dir["#{config.root}/lib/**/"]
答案 0 :(得分:0)
我通过将Pg_Tools.rb
重命名为pgtools.rb
并将所有include PgTools
语句修改为include Pgtools
来解决错误
我在故障排除过程中使用的链接如下所示
Rails 3 library not loading until require
http://www.williambharding.com/blog/technology/rails-3-autoload-modules-and-classes-in-production/