Rails 什么时候业务逻辑放在 concerns?

willx · 2025年01月09日 · 最后由 NauxChen 回复于 2025年01月13日 · 388 次阅读

在看 once 的 writebook 源码的时候,发现一些 model 的代码一会儿放在 concerns,一会儿放在对应的模型名的目录下。

Positionable 只有 leaf 用了,也不是多个 model 的公用逻辑,为什么要放 concerns 里面呢?

37signals 喜欢用 concerns 而且玩得溜。

我是只有公用逻辑才放 concerns。

我是比较喜欢放 concern 的 我一般是这样 某个 model 的根据功能划分,比如 student 里 关于考试成绩的相关操作,放一个 concern 之后 选课相关的 再放另一个 concern 之后 include 进来

model 大了不方便,不同功能的切出来,没必要都揉在一起

自己封装的、复用性比较强的功能放 concerns 里,需要用到的时候 include 一下

jicheng1014 回复

我和你一样,这样减少的 model 里面的方法数量。按模块划分 concerns.

业务无关的纯技术内部实现的复用部分 -> concerns 业务有关的复用代码 -> services

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