如何在rails app中添加类的新文件夹?

我在rails app上下文中有两个问题:

我有一些不是“模型”的类,但在我的系统中需要,所以我想要分开它们

1)如何在app /?中添加“class”文件夹(如果我创建它并放入类,则不包含它们)

2)如何将文件夹“模型”放在“app / class”文件夹中(这里同样的事情,如果我移动它就不包括模型)

谢谢。

有点不清楚你在问什么。

但是如果你想自动加载其他目录,你可以通过在config/application.rb放置这样的东西来实现

 config.autoload_paths << Rails.root.join('app/class') 

但请不要调用您的目录class ,而是使用描述性的东西。

按照惯例代码,它不适合模型,控制器,视图,帮助器或关注点,并放置在项目根目录的lib目录中。


编辑:

您可以使用glob加载子目录:

 config.autoload_paths << Rails.root.join('app/classes/**/') 

很长一段时间,Rails已自动加载/ app下的所有路径,如此处所述

使用“app / class”目录时可能会遇到问题,因为“class”是保留字,“Class”是Ruby中的类。

您的示例存在问题:

例如:“app / classes / effects / attribute.rb”with“class Effect :: Attribute”

请注意,在文件路径中,“effects”的末尾有一个“s”,而你的模块名称不是“Effect :: Atttribute”。 那些应该匹配。 两者都以“s”结尾,当它们匹配时,Rails自动加载应该可以工作。

您应该删除有关附加到config.autoload_paths的任何其他建议。