Heroku制作:config.autoload_paths似乎不起作用

时间:2017-05-16 15:28:09

标签: ruby-on-rails heroku production

我有一个Rails应用程序,在开发中运行良好。由于

,它访问我/lib文件夹中的类
config.autoload_paths += Dir["#{config.root}/lib/**/"]

在我的 application.rb 配置文件中。但是,当我在Heroku上运行生产应用程序时,出现Uninitialized Constant错误。

例如,在本地运行rails c

>rails c
001> OrderPdf
 => OrderPdf
002>

但是在制作上:

>heroku run rails c
001> OrderPdf
NameError: uninitialized constant OrderPdf
(stack trace)
002>

这是怎么回事?

1 个答案:

答案 0 :(得分:2)

因为在prod你可能在你的配置select color, count(*) as count , a.total from colors JOIN ( SELECT color, count(*) as `total` FROM colors GROUP BY color ) a ON colors.code = a.color where code > 0 && code <= 500 group by color order by count(*) desc; 中有这一行,它会在你手头加载所有类。

要解决此问题,您添加到autoload_path的所有内容也会添加到eager_load路径

config.eager_load = true