2014-06-06 22 views
0

我一直在通過Hartl的http://www.railstutorial.org/book和Kehoe的學習軌道。這兩個指南都很好地描述了MVC模型,但我無法理解何時創建新的控制器和模型以及爲何需要創建新控制器和模型。我何時需要爲導軌制作新的控制器/模型?

在整個教程中,他們經常會製作新的控制器和模型。當我閱讀它時,它似乎是有道理的,但是當我現在試圖自己創建一個Web應用程序時,我突然感到極度失落。

我從其他來源讀到,當創建控制器和模型時,它並不一定意味着每個控制器都有一個模型。這隻會讓我更加困惑,因爲我一直將MVC模型看作是一種三聯體,可以相互協作。

如果你能解釋與實例的問題,這將是真正真棒

回答

2

比喻相當簡單。

型號可用於您的業務邏輯。您可能需要在數據庫中保留的邏輯類型,User信息,Product的詳細信息,博客的Post
對於每個這樣的數據模型,您都會創建一個模型

控制器可爲您帶或不帶任何預處理涉及客戶端(Views)與業務邏輯(Model)。您可能需要UsersController來管理註冊,註冊。
通過這種關係,你可以說User模型有相應的Userscontrollers
但情況並非總是如此。考慮管理會話,你可以有一個SessionsController,它本身可以管理登錄,cookie處理等;但它可能仍然與User模型(它不具有Session模型)交談。
另一個例子,你可以有一個StaticPagesController,你可能會用它來創建帖子(從Post模型)。你可能根本不需要PostsController

另外,根據應用程序與用戶的交互方式以及流程的流程,控制器可以與任意數量的模型對話。

REST習慣上還是會把你有資源您擁有一個模型,相應的控制器,誰輪流舉行會談,以不同的HTTP動詞,他們像newcreatedestroyedit映射到不同的動作,update。但這只是基本的CRUD。這通常不是一個好的應用程序。