我有一个铁轨控制器和一个resque工人。两者都有一些功能。我应该在哪里放置这些函数,以便遵循DRY原则和Rails约定?你会在哪里放置一个resque worker和一个rails控制器共享的代码?
回答
对我来说,这听起来像是一个服务层的好例子。我的一个同事写了这个概念的一个很好的总结:http://blog.carbonfive.com/2012/01/10/does-my-rails-app-need-a-service-layer/
在领域驱动设计,埃文斯定义了一个服务作为为单独矗立在模型的接口提供一种操作 。在其他 单词中,服务是一种行为,而不是事物。我们不应将 操作强制为一个现有的对象,而应将其封装在单独的无状态服务中。
...
域服务脚本涉及多个领域对象用例 。强制该逻辑进入域 对象很尴尬,因为这些用例通常涉及任何单个对象责任范围外的规则。
服务层是许多其他Web应用程序MVC框架中的一个常见功能,当许多Rails应用程序选择使用胖模型不提供问题域中适当的责任封装时。
不知道更多恐怕我不能提供更具体的答案。我的下一步将是尝试考虑应该命名这个服务。它是一个建立我们有名的工厂吗? Do完成了我们可以命名的特定角色吗?
呵呵,我现在已经把这样的代码放到'lib/services'里了!很高兴知道我并不孤单:) –
@SergioTulentsev你当然不是一个人。然而,我会将服务添加到'app/services'。它们是你的应用程序的重要组成部分,应该像这样组织起来,它也有助于防止'lib'成为一个全面的。我所处理的应用程序通常会在默认的Rails应用程序中找不到'app'下的几个子文件夹。不要害怕根据需要添加自己的内容。 – Jonah
好主意,其实。会尝试。 –
取决于这些方法实际做什么,但/lib
可能是一个好点。
作为回答,他们做了一些计算,并创建了一个详细的数据结构,由控制器的视图和resque worker发送的电子邮件使用。 – shishirmk
- 1. rails 3 - 多个控制器之间共享的代码 - 在哪里放置它?
- 2. gsh - Global Shell:你在哪里放置共享密钥,密码?
- 3. 在一个控制器中共享NSColorPanel
- 4. 两个控制器的Ruby on Rails的一个共享视图
- 5. UIPageViewController在哪里缓存上一个和下一个控制器?
- 6. 我在哪里放置我的resque-retry失败后端代码?
- 7. 由多个控制器和模型共享的代码 - 哪里是保持它的最佳位置?
- 8. 你在哪里把这种控制器代码放在一个角度应用程序中?
- 9. 在哪里释放一个块的视图控制器
- 10. 重新开放一个类,在哪里放这个代码?
- 11. 在一个类和一个通用类之间共享代码
- 12. 你把SQL RAISERROR代码放在哪里?
- 13. 如何/在哪里创建一个jQuery/erb代码的共享方法?
- 14. 如何将阵列从一个控制器共享到另一个控制器
- 15. 在Rails,放在哪里有用的功能,这两个控制器和模型
- 16. 在视图和控制器之间共享一个字符串
- 17. 如何从一个控制器隐藏数据,但使用共享服务与另一个控制器共享
- 18. 在哪里放置一个shell脚本?
- 19. 在多个视图控制器之间共享代码
- 20. Rails:在哪里放置一个特定的视图
- 21. Rails:你把非模型代码放在哪里?
- 22. 我在哪里放置这个计数器增量代码?
- 23. Rails重构:在一些控制器中重复代码。它属于哪里?
- 24. 你在哪里放置CSS代码的Rails应用程序的小片段?
- 25. 你在哪里放置NPM的请求代码?
- 26. 在哪里放置一个默认值从Model in Rails返回?
- 27. Rails - 在哪里放置一个css文件?
- 28. 代码点火器:放入单独的控制器或一个?
- 29. 控制器和指令之间的共享代码
- 30. 我会在哪里放置一个将在我的模型/视图/控制器中使用的方法/变量?
负责做这些功能是什么? – Jonah
这些功能正在创建一个由模型组成的详细数据结构。 – shishirmk