我想知道是否有关于在Rails应用程序中放置非标准Ruby文件的最佳实践,这些文件不适合任何默认目录(controllers
/models
等).
我指的是控制器/模型等使用的类,但不是任何Rails基类的子类.类,其中包含从模型中提取的功能,以减少模型的脂肪.有些看起来像模型,但不是AR模型,有些看起来更像"服务",有些介于两者之间或其他.
几个随机的例子:
- "strategy"类,通过facebook等使用密码进行身份验证.
- 封装参数的"XParams"对象或处理参数的"XCreator"对象,以执行一些复杂的操作,最终导致创建一些AR模型
- 向外部API发出请求或封装这些请求和响应的类
- 可以替代真实AR模型的假模型(例如来宾用户)
- 重新安排工作
- 存储和读取Redis信息的类
- classes that execute some specific actions like processing data, generating reports etc. and are called from 重新安排工作 or rake tasks
我现在有很多这样的东西,其中一些被添加到lib
中,最后变成了一堆随机的类和模块,还有一些潜入app/models
中.我想以某种方式组织这件事,但我不知道从哪里开始.
应该只有AR型号进入app/models
吗?或者也可以放一些域或助手模型吗?你如何决定某样东西是否是模型?
所有不符合app
的都应该进入lib
吗?或者我应该在app
中添加一些新的自定义子目录?哪些子目录,以及如何划分自定义类?
在你的项目中你如何处理这个问题?我知道每个项目都有点不同,但肯定有一些相似之处.