您将把resque工作者和rails控制器共享的代码放在哪里?

时间:2012-12-15 01:27:57

标签: ruby-on-rails-3 resque

我有一个rails控制器和一个resque工作器。两者都有一些共同的功能。我应该在哪里放置这些函数,以便遵循DRY原则和Rails约定?

2 个答案:

答案 0 :(得分:1)

对我而言,这听起来像服务层的好例子。我的一位同事写了一个很好的概念摘要:http://blog.carbonfive.com/2012/01/10/does-my-rails-app-need-a-service-layer/

  

在域驱动设计中,Evans将服务定义为操作   提供作为模型中独立的界面。其他   单词,服务是一种行为,而不是一种东西。而不是强迫   对现有对象的操作,我们应该把它封装在一个   独立的无国籍服务。

     

...

     

域服务编写用例脚本   涉及多个域对象。强制将此逻辑强制转换为域   对象很尴尬,因为这些用例通常涉及外部规则   任何一个对象的责任。

服务层是许多其他Web应用程序MVC框架中的常见功能,当胖模型不能在其问题域中提供适当的职责封装时,许多Rails应用程序会选择使用这些功能。

我不知道更多,恐怕无法提供更具体的答案。我的下一步是尝试考虑应该命名的服务。它是一个建造我们有名字的工厂吗?我们可以履行一个特定的角色吗?

答案 1 :(得分:0)

取决于这些方法的实际用途,但/lib可能是一个好地方。