新手问题 rails 里好像所有的业务逻辑都在 action?没有 service 层吗?

匿名 · 2012年07月06日 · 最后由 qq792326645 回复于 2016年03月28日 · 4437 次阅读

rails 里好像所有的业务逻辑都在 action,没有 service 层吗? 那如何复用一些 service 呢?通过 Module 的方式么?

你在用的 Rails 版本是多少?

匿名 #2 2012年07月06日

#1 楼 @lgn21st 在学习的时候看到 redmine 的源码,发现好多逻辑都在 action,没有发现 service 层,难道是我没看到?

Redmine 的源码可能不适合初学者。http://ruby-china.org/topics/1335

匿名 #4 2012年07月06日

#3 楼 @lgn21st 不适合初学者,是啥意思,是太高深了,还是说 redmine 写得太烂?

Redmine 是从 Rails 1.x 时代慢慢一点一点升级上来的,因为历史原因,现在也没有办法完全使用最新主流 Rails 版本的很多新功能,而且项目复杂庞大,代码质量... 至少我看了以后认为不高,在 Rails 2.x 时代,Redmine 的开发曾经一度陷入泥潭,代码臃肿,积重难返,不过 Redmine 社区的人经过不屑努力,终于通过不断的重构,慢慢改善了很多,为此还专门有一本书用来介绍 Redmine 是怎么被 Refactor 成现在这样的:http://www.refactoringredmine.com/book/

个人不建议新手学习 Redmine。

匿名 #6 2012年07月06日

#5 楼 @lgn21st 非常感谢!

默认概念没有 Service 层,由 action 来代替。根据应用的复杂度不同,很多开发人员发现这样子不能满足自己的需要了,所以有第三方的 gem 来加上了支持。可以看看这篇 blog: http://karmajunkie.com/blog/2012/05/07/the-problem-with-controllers/

不懂 service 是啥?

匿名 #9 2012年07月07日

rails2.1 版本的时候看过 redmine,做过一些二次开发。发现它的代码的设计思想好像是 java 那类语言过来的。很神奇,哈哈

#9 楼 @Guest 你好,我正开始做 redmine 的二次开发,感觉无从下手,可以请教一下你吗?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号