1

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

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

我的问题是:这样做是一种好习惯,还是应该在其中创建模型并填充数据而不是直接调用 api?我想知道这是否只是对 MVC 的务实妥协。我刚刚开始使用 Rails(和 MVC),所以我愿意接受任何想法、评论或建议

4

2 回答 2

2

这有点像第 22 条问题。(我确实写了一个很大的答案,但后来被删除了,因为它读起来太乏味了)

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

如果他们的意思是,你可以在不使用模型的情况下使用 MVC,那么答案是“是”,但它不再是 MVC,你已经抹杀了M ie 模型。

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

如果您想了解设计模式,http://c2.com/是一个非常好的地方。

  • 模型是表示数据或什至活动的对象,例如数据库表或什至某些车间生产机器过程。
  • 视图是模型状态的某种形式的可视化。
  • 控制器提供了更改模型状态的功能。

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

还要考虑MVC 中的务实妥协 以基于实际而非理论考虑的方式明智和现实地处理事物。在 MVC 中省略 Model 的使用听起来不是一个好主意,它不再是 MVC。

话虽如此,从您的角度来看,您似乎是想说 Rails 不一定是严格的 MVC,因此为什么不使用您想要的方式,:) 但我建议保持 MVC 的完整性(并遵循纯粹的方法)。

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

好读:杰夫阿特伍德: 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

总而言之,上面提到了所有 :)来源。

在此处输入图像描述

于 2012-08-17T22:54:15.297 回答
0

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

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

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

如果你想清理你的代码,也许把一些函数放在帮助器或 /lib 中

于 2012-08-16T23:06:06.537 回答