为了更加面向对象,我发现自己创建了更多的PORO(Plain-old_ruby-objects)。在rails中,这只是意味着模型类不从ActiveRecord::Base,
继承,因此该模型不受数据库表的支持。
假设我有一个包含数百个型号的应用程序。如果有一些PORO模型的命名约定,那么可以快速识别那些PORO模型,而不必打开每个文件,并注意它们不会从ActiveRecord::Base
继承。
我找不到这个的命名约定。 rails社区中是否存在一个?如果没有,欢迎提出建议。
答案 0 :(得分:2)
我最终做的是在我的app/models
目录中创建一个名为poros
的子目录。
为了在加载路径中的poros
子目录中提供这些文件,我必须进入config/application.rb
并添加以下行:
config.autoload_paths += Dir[Rails.root.join('app', 'models', '{**}')]
现在,我可以像使用任何模型一样访问这些PORO。
答案 1 :(得分:1)
我不知道Rails社区中poro类的任何命名约定,尽管最近有一种趋势是让继承自host
的类相当小。
如果您的类非常通用,则应将它们放在System
目录中。如果它们特定于您的应用,但只需要不与其他类进行交互,则可以创建放置在System
中的服务类。同样,您可以提取装饰器,工作和关注点。
无论保留哪个类,都可以保留在System.setProperty(..., ...)
文件夹中,也可以放在子目录中。