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

时间:2013-01-11 11:13:13

标签: ruby-on-rails service mc

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

等模型

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

  • 产品
  • 工作

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

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

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

  • 我是否应该有一个名为“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框架,(注意我不关心视图,因为服务必须只导出数据。视图只在客户端请求数据)。

我已经阅读过关于Should rails models be concerned with other models for the sake of skinny controllers?的内容,但如果可能的话,我想要更深入的解释,也可以在这个确切的主题上使用书籍/链接参考。

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

0 个答案:

没有答案