比如对于一张订单,
很多作业都是对这张订单来进行操作的,不可避免,有很多 action 会建立在这个订单 CONTROLLER 的上面。
有什么方式可以分流掉一些 action 吗?
可能有些未必是 orders controller 的逻辑,也许属于 payments controller,另外 model 和 controller 未必得是一一对应的。电子商务订单流程处理参考一下 spree 我觉得挺好。
所谓 ROA 这个 R 是可以更抽象的,并不是说一个 model 和 controller 是一一对应的关系;将你的操作抽象成另一种资源。比如常见的用户登陆与登出,就被抽象成了 session 这样一种资源的创建与销毁,sns 里面常用的用户之间的 follow 动作可抽象成一种 relationship 的创建和销毁,等等。。。
最简单的方式是把一个 action 拆开,变为多个 private 的 action,然后依次当成一个函数来调用 尽可能的把逻辑的东西写到 Model 里面