2014-01-27 95 views
0

我有兩個關於MVC如何工作的問題。我很確定我應該增加幾項資源,但我只是得出這個結論,並且想先要求得到更好的理解。Ruby on Rails:何時添加新資源

第一個問題: 我有兩個模型,用戶和主題。用戶可以將主題輸入數據庫。每個科目有5個數據輸入表格(基線,3個月,6個月,...),每個約100-200個問題(每個科目有1個數據輸入表格)。每個數據輸入表單應該是一個新的資源嗎?

第二個問題: 可以說,我想隨機幾個科目成了一團:

從視圖中,用戶輸入的科目量隨機分到一組,以及組名稱被分配。表單標籤指定了我創建的一個操作,只是針對此函數,稱爲隨機化。

從控制器中,randomize使用從視圖發送的參數來查詢數據庫,然後更新每條記錄以反映組。我應該爲它創建一個新的資源,而不是爲randomize函數創建一個新的操作?作爲一個側面說明,是否應該在模型中完成這些計算(除了定義變量)?

謝謝你的時間。任何幫助將不勝感激。我正式掌握了所有關於這方面的知識......但我覺得我真的很接近真正理解MVC。

回答

1

我會先回答你的第二個問題。

您應該創建控制器來處理資源的CRUD任務。在這個問題中,你問創建一個「組」。無論這是實際資源,還是對其他資源集合的修改,您都有創建「組」的概念,可能會讀取/更新「組」,並且肯定會刪除一個「組」。

基於此,我寧願有一個RandomGroup控制器,我可以使用標準的REST接口調用,而不是將某些#randomize動作填充到另一個控制器的旁邊。

至於你的第一個問題......也許,也許不是。 這實際上取決於數據輸入表單是否具有自己的業務邏輯。如果沒有,那麼它就不會成爲大型物體的一部分。但是,如果您的測試和代碼在Subject模型中變得過於複雜,您可能希望將其分成多個模型或至少包含在該模型中的多個模塊。

也許你可以認爲「基線」,「3個月」,「6個月」都是一樣的...除了他們的交付時間。也許這本身就是一種模式,而Subject可能是has_many :forms ??

思考的食物。

+0

謝謝你的回答。 –