在Rails中命名PORO模型的惯例?

时间:2015-08-31 16:44:16

标签: ruby-on-rails ruby

为了更加面向对象,我发现自己创建了更多的PORO(Plain-old_ruby-objects)。在rails中,这只是意味着模型类不从ActiveRecord::Base,继承,因此该模型不受数据库表的支持。

假设我有一个包含数百个型号的应用程序。如果有一些PORO模型的命名约定,那么可以快速识别那些PORO模型,而不必打开每个文件,并注意它们不会从ActiveRecord::Base继承。

我找不到这个的命名约定。 rails社区中是否存在一个?如果没有,欢迎提出建议。

2 个答案:

答案 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(..., ...)文件夹中,也可以放在子目录中。