Rails MVC概念在实践中

时间:2012-08-16 22:55:17

标签: ruby-on-rails model-view-controller

我实际上并不是在问一个问题,而是一个关于如何编写代码以适应Rails MVC模式的建议(或推荐)。希望rails老手或任何熟悉MVC的人都可以给我一些反馈。

我有一个通过ActiveResource与RESTful api应用程序对话的Web应用程序。它可以使用API​​调用获取和更新内容。它完美地运作。但是,Web应用程序没有任何模型。它的工作方式是当用户触发一个动作(索引,视图,编辑等)时,控制器将直接调用REST api来获取/更新数据。

我的问题是:这样做是一个好习惯,还是我应该在那里创建模型并填充数据而不是直接调用api?我想知道它是否只是一个实用主义妥协于MVC。我刚刚开始使用Rails(和MVC),因此我对此有任何想法,意见或建议持开放态度

2 个答案:

答案 0 :(得分:2)

这是一个有点引人注目的问题。 (我确实写了一个很大的答案但后来被删除了,因为阅读起来太繁琐了)

如果你的意思是,可以在没有模型的情况下实现MVC模式,那么答案就是否定。 M表示模型。

如果他们的意思是,你可以在不使用模型的情况下使用MVC,那么答案是&#34;是&#34;,但它不再是MVC,你已经消除了< strong> M 即模型。

我建议您详细阅读MVC模式,然后尝试了解您的应用程序实际尝试的内容。

如果您想了解设计模式,

http://c2.com/是一个非常好的地方。

  • 模型是表示数据甚至活动的对象,例如一个 数据库表甚至一些工厂生产机器的过程。
  • 视图是模型状态的某种可视化形式。
  • 控制器提供改变模型状态的工具。

现在在您的情况下(似乎): 您确实有通过api传输的数据,因此我建议填充模型属性并将其传播。

同时考虑MVC中的语用妥协以一种基于实际而非理论考虑的方式合理和现实地处理事物。在MVC中省略模型的使用听起来不是一个好主意,它不再是MVC。

说完从您的观点来看,您似乎试图说Rails不一定是严格意义上的MVC,因此为什么不使用您想要的方式:) < em>但我会建议保持MVC的完整性(并遵循纯粹的方法)。

http://c2.com/cgi/wiki?ModelViewController

好读:jeff Atwoods:http://www.codinghorror.com/blog/2008/05/understanding-model-view-controller.html(随意跳过asp.net部分)

https://stackoverflow.com/questions/1242908/in-english-what-really-is-model-view-controller

总结所有 :)来源如上所述。

enter image description here

答案 1 :(得分:0)

“该模型由应用程序数据和业务规则组成”(维基百科)

模型本质上是数据库中的一个表。

如果您没有存储任何数据,不验证任何数据,那么您不需要模型。

如果要清理代码,可以将某些函数放在帮助器或/ lib