Rails服务对象与lib类

时间:2013-04-23 00:36:29

标签: ruby-on-rails ruby-on-rails-3

简短版本:什么时候应该把东西放到app / services而不是lib /.

我最近一直在服务对象路线上走下去,但我意识到有时我无法真正决定天气我应该将某些内容提取到服务对象(我在app / services中)或者在我的类中lib文件夹。

我经常寻找的一件事是,如果类需要访问params或其他特定于控制器的东西(即作为初始化程序中的参数),那么我倾向于将其放入服务中。

这里的约定是什么?证明(链接)会很好:)

2 个答案:

答案 0 :(得分:63)

这就是我倾向于考虑lib/中的代码:

  • 它没有与我的应用的域模型相关联。
  • 可以在其他项目中重复使用。
  • 它可能成为它自己的宝石。因此,将其放入lib/是朝这个方向迈出的第一步。

服务:

  • 他们倾向于知道关于域模型内部运作的相当数量。
  • 在我的应用中执行特定于业务领域的工作。
  • 倾向于与特定型号相结合。

答案 1 :(得分:4)

IMO,服务是您域名的抽象。 Lib的东西用于方便课程,其他东西与你的模型没有直接关系。