模型是否应该更改其他模型或控制器应该更改每个模型? (Rails或其他模型 – 控制器架构)

在服务器应用程序中,存在模型,如“文章”,“工作”,“工人”和

例如,在有这些模型的服务器端应用程序中:

  • 制品
  • 工作
  • 工作人员

还有像开始工作这样的动作,它可以执行以下操作:

  • 产品:工作产品的数量增加
  • 工作:插入工作
  • 工人:工作人员被设置为不可用,并且保存了对当前工作的引用

现在我的问题是:我应该把上面描述的逻辑放在哪里?

  • 我应该有一个名为“jobs / start”的控制器来调用模型“job.start(args …)”上的方法。 在这个模型方法中,它调用“product.increaseRequestedQuantity(args …)”和“worker.setBusy()”

  • 我应该有一个名为“jobs / start”的控制器调用“job.start(args …)”然后“product.increaseRequestedQuantity(args …)”和“worker.setBusy()”

我真的不知道哪个是最佳实践,首先模型知道其他模型,但逻辑是核心。 在第二种情况下,模型不直接了解彼此但逻辑更加分散。 在作业上还有一个名为“start”的方法,人们会认为它会在应用程序级别启动一个作业(这意味着它会改变产品和工人模型),但会影响模型级别(意味着只会更改作业模型,不改变产品和工人模型)。

您对此事以及这种关注点的分离有何看法?

这适用于使用Rails的人,即使我不是特别谈论Rails(我自己的框架基于服务+ node.js中的模型,其中服务就像Rails中的控制器),或任何其他MC框架, (请注意,我不关心视图,因为服务必须只导出数据。视图仅在客户端请求数据)。

我读过关于瘦轴控制器的轨道型号是否应该关注其他型号? 但是如果可能的话,我想要更深入的解释,也可以在这个确切的主题上使用书籍/链接参考。

感谢您抽出宝贵时间阅读我的问题(:

Interesting Posts