2011-01-28 42 views
0

我有点困惑在Rails里写什么。困惑在MVC中的轨道

理想情况下,我将拥有一个视图,一个控制器,一个模型。模型应该具备所有的业务逻辑。但是在我见过的大多数Rails应用程序中,我已经看到了写在Controller文件中的大部分业务逻辑。

我们应该称他们为控制器吗?那么视图模型呢?我正在讨论与视图关联的数据模型。当我说这些时,我在脑海里就有JSF和Swing。每个视图都有一个与之关联的数据模型,通常是一个bean。但是在这里,我们没有这样的东西,或者我是无知的?那么服务层怎么样,我如何在Rails代码中实现它们。

总结我的问题

  1. 为什么业务逻辑被 写在大多数的 Rails代码控制器?这是一个很好的做法吗?
  2. 如何将视图模型与 导轨(即视图的数据模型)结合使用?
  3. 将服务层放在Rails应用程序中的位置?

感谢

+0

通常业务逻辑在模型中。你能举出你在控制器中看到大量业务逻辑的例子吗? – DanSingerman 2011-01-28 11:16:07

回答

2

总结我的答案:

  1. Ruby的新标准on Rails的是把业务逻辑模型。这也被称为胖模型骨感控制器。

  2. Rails没有强制执行这种数据模型的方法,但是如果您选择,您可以实现它。基本的脚手架做了类似的事情。

  3. 服务层很可能存储在机架中间件中。这允许对请求和响应进行一般过滤。