模型或控制器的逻辑

时间:2013-10-23 17:55:06

标签: ruby-on-rails ruby-on-rails-4 separation-of-concerns

MVC的原则让我在制作Rails 4应用程序时思考。我全都将逻辑转移到模型中并坚持Fat Model原则 但只是想知道你对以下内容的看法:

我的付款表上存在用户启动的操作,用于更改付款状态。要取消付款,付款必须已经有效。

在调用模型中的方法之前,我已选择使用我的Controller来确定付款状态是否已激活。我的一般方法是让控制器决定是否需要调用DB,然后我才会调用模型中的方法来实际调用。

您认为我应该让模型决定是否更新状态吗?出于某种原因,这对我来说似乎不对。

听到一些关于此的想法会非常有趣。

2 个答案:

答案 0 :(得分:0)

我建议你把它放在你的模型中。

原因:

  1. 该模型的责任。它应该知道何时取消付款。
  2. DRY。如果您在不同的地方需要相同的行为,则不必重复主动检查。
  3. 易于测试,因为整个逻辑是单一的。
  4. My general approach is to let Controllers decide whether a call to the DB is required and only then will I call the method in the model to actually make the call

    模型不只是进行数据库调用。

答案 1 :(得分:0)

Business Logic转到MVC中的Model部分。模型的作用是包含数据和业务逻辑。另一方面,控制器负责接收用户输入并决定做什么。