为什么在Rails中使用/ apps / libs而不是/ libs?

时间:2018-09-11 20:53:05

标签: ruby-on-rails ruby sidekiq

在sidekiq文档中,有this quote关于在与自动加载错误相关的Rails项目中倾向于使用/apps/libs而不是/libs

  

lib /目录只会引起痛苦。将代码移至app / lib /,并确保其中的代码遵循类/文件名约定。

此外,还有:

  

请勿在autoload_paths或eager_load_paths中配置额外的路径。那是骇客;遵守约定! app /下的任何目录都可以包含Ruby代码,您无需显式配置任何内容。

我的问题是:

这些陈述是否有事实证明使用/apps/libs/libs更好?

这仅对自动加载与Rails相关的对象(例如AR模​​型,控制器,作业等)有用吗?还是对PORO有所帮助?

这些评论是否仅在特定上下文中有意义?

1 个答案:

答案 0 :(得分:1)

根据我的经验,使用apps/libs要容易得多。您可以像使用Class MathFunction一样使用MathFunction.sqrRoot,并在其他地方(例如控制器或模块)使用它。

要在/libs目录中引入库,需要使用autoload_paths进行配置,这使我很烦恼。 Matz本人建议不要使用autoload,因为它正在being deprecated的过程中。

简而言之,是的。我唯一需要使用libs目录的目的是进行自定义rake任务。否则,我会坚持使用apps/libs