我有一个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>
这是怎么回事?
答案 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