2009-12-15 34 views
2

我有一個MVC Web應用程序(紅寶石,機架,Apache),我希望它是安寧的。 我有一個調度程序,將獲得傳入的URI並調用相應的控制器。 在我看來,一個控制器可以處理與單個模型相關的每一個動作,我錯了嗎? 我不知道的事情是像下面這樣的情況:控制器和寧靜的應用程序

如果用戶有幾個項目,我怎樣才能使用URI /用戶/ USER_ID /項目的具體項目/ ITEM_ID 我的意思是,這是應該在UserController中處理的東西,還是我需要創建另一個「交叉類」控制器,如UserItemController,應該照顧這個王者的東西? 我希望我清楚:-) 非常感謝, 呂克

回答

2

您在控制器或模型方法的組織有什麼與閹您的應用程序將是寧靜與否。理想情況下,儘量將1個控制器映射到1個模型,但您可以有一個專用於動作的控制器(例如,login)。

你想看的是routes.rb文件。這是您將映射資源的位置等等。

map.connect ':controller/:action/:id' 

我建議你閱讀the excellent article of Ryan Tomayko about REST

+0

偉大的文章,謝謝 – Luc

+0

這對我一開始就非常有用。順便說一下,考慮upvoting /接受答案。看看這個常見問題帖子:http://meta.stackexchange.com/questions/7237/how-does-reputation-work-on-stack-overflow/7238#7238關於聲譽等的更多信息。 – marcgg

+0

(並歡迎SO!) – marcgg

0

將有多少代碼是在控制器?他們有什麼依賴性?如果這些傾向發生變化,您需要重建多少?你能想象一個projecc團隊的細分責任 - 一些人在用戶上工作,其他人在項目上工作?

我的意圖是保持控制器的數量很小,因此我只會將它們分開以實現並行開發,或者如果您發現「URL空間」的某些部分似乎具有其自己的生命, ,其餘則穩定。

我認爲如果您發現需要增加粒度,您可以對Controller粒度採取遲到決策,重構。

+0

- 沒有太多代碼 - 控制器內的依賴關係?那麼,這就是我試圖找出的事實 - 我想重建工作並不重要 - 沒有細分項目團隊的責任 是的,你是對的,我認爲這個決定可以稍後做出但實際上我想知道在這種情況下是否存在某種最佳實踐。 - 使用控制器查詢/更新幾個不同型號內的東西... 或 - 對指定模型使用控制器,但在這種情況下如何處理交叉模型關係船? 非常感謝 – Luc

相關問題