首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails -用于放置非活动记录的模型的位置(目录)

Rails -用于放置非活动记录的模型的位置(目录)
EN

Stack Overflow用户
提问于 2013-05-09 23:57:46
回答 3查看 6.2K关注 0票数 22

我们正在构建的应用程序的模型不是数据库组件。我们很想了解rails社区中的其他人正在做什么来解决这个问题。

我们正在为如何安置他们而苦苦挣扎。

我们是否应该:

代码语言:javascript
复制
app/models/domain

代码语言:javascript
复制
app/domain/models

或者也许

代码语言:javascript
复制
app/models   # Business Models
app/models/ar # Active Record Models

或者也许

代码语言:javascript
复制
app/models/domain/   # Business Models
app/models/domain/ar # Active Record Models

这其中的一部分是,我们正在为如何接近rails标准以及在多大程度上创建一个符合我们需要的结构而苦苦挣扎。

如果我们将对象看作服务对象,我们可以拥有

代码语言:javascript
复制
app/models/service-object

代码语言:javascript
复制
app/models/ # For plain active record

另一个下降的途径是在应用程序中没有东西,例如

代码语言:javascript
复制
/service_objects

而不是

代码语言:javascript
复制
/app/models/service_objects

大概如果我们想要通过rails应用程序访问,我们最好使用app/,以便利用约定而不是配置。

EN

回答 3

Stack Overflow用户

发布于 2013-05-10 00:03:23

对于服务对象,通常将它们直接放在应用程序目录app/services/下。工作进程和序列化程序在app/serializers/中也遵循这种模式。对于不是AR的模型,您仍然可以将它们放在models目录中。这只是我对它的看法。

票数 14
EN

Stack Overflow用户

发布于 2013-05-16 22:41:21

如果它们是模型,那么您应该将它们放到app/models中,因为这个目录是用于模型的,而不仅仅是ActiveRecord子类。

票数 10
EN

Stack Overflow用户

发布于 2013-05-16 06:44:35

如果你有不是模型的类,例如,它们可能代表一个表单,我会说继续并将它们放在lib中。

如果它们与您的应用程序正交,即:它是用于调用另一个应用程序的接口,您可以将其包装为私有或公共gem,这取决于它对社区其余部分的适用性。

最后,这真的无关紧要。选择一件事,并与团队的其他成员达成一致。移动东西应该非常容易,特别是当您将决定使用的内容添加到应用程序($LOAD_PATH += '...')的加载路径中时。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16466024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档