我已经经过Hartl的http://www.railstutorial.org/book和Kehoe的学习。这两个指南都很好地描述了MVC模型,但是我无法理解何时创建新的控制器和模型以及为什么需要创建新的控制器和模型。
在整个教程中,他们经常会制作新的控制器和模型。当我阅读它时似乎有意义,但当我现在尝试自己创建一个网络应用程序时,我突然感到极度迷失。
我从其他来源读到,在创建控制器和模型时,它并不一定意味着每个控制器,制作一个模型。这只会让我更加困惑,因为我总是将MVC模型视为一种三元组,它们彼此协同工作。
如果你能用例子来解释这个问题,那真的很棒
答案 0 :(得分:2)
类比很简单。
模型可用于您的业务逻辑。您可能需要在数据库中保留的逻辑类型,User
信息,Product
的详细信息,博客Post
。
对于每个此类数据模型,您都可以创建模型。
控制器可供您将客户端(Views
)与业务逻辑(Model
)相关联,无论是否进行任何预处理。您可能需要UsersController
来管理注册,注册
通过这种关系,您可以说User
模型具有相应的Userscontrollers
但情况并非总是如此。考虑管理会话,您可以拥有一个SessionsController
,它本身可以管理登录,cookie处理等;但它仍然可以与User
模型对话(它没有Session
模型)
另一个例子,您可以拥有StaticPagesController
,并且您可能正在使用它来创建帖子(来自Post
模型)。您可能根本不需要 {/ 1}}。
此外,控制器可以与任意数量的模型进行通信,具体取决于应用程序与用户的交互方式以及流程的流程。
REST 约定规定你有一个资源,你有一个模型,一个相应的控制器,他们轮流与不同的HTTP动词对话,将它们映射到不同的PostsController
,new
,create
,destroy
,edit
等操作。但这只是基本的update
。而这通常不是一个好的应用程序。