2011-01-28 76 views
0

我有點困惑在Rails裏寫什麼。困惑在MVC中的軌道

理想情況下,我將擁有一個視圖,一個控制器,一個模型。模型應該具備所有的業務邏輯。但是在我見過的大多數Rails應用程序中,我已經看到了寫在Controller文件中的大部分業務邏輯。

我們應該稱他們爲控制器嗎?那麼視圖模型呢?我正在討論與視圖關聯的數據模型。當我說這些時,我在腦海裏就有JSF和Swing。每個視圖都有一個與之關聯的數據模型,通常是一個bean。但是在這裏,我們沒有這樣的東西,或者我是無知的?那麼服務層怎麼樣,我如何在Rails代碼中實現它們。

總結我的問題

  1. 爲什麼業務邏輯被 寫在大多數的 Rails代碼控制器?這是一個很好的做法嗎?
  2. 如何將視圖模型與 導軌(即視圖的數據模型)結合使用?
  3. 將服務層放在Rails應用程序中的位置?

感謝

+0

通常業務邏輯在模型中。你能舉出你在控制器中看到大量業務邏輯的例子嗎? – DanSingerman 2011-01-28 11:16:07

回答

2

總結我的答案:

  1. Ruby的新標準on Rails的是把業務邏輯模型。這也被稱爲胖模型骨感控制器。

  2. Rails沒有強制執行這種數據模型的方法,但是如果您選擇,您可以實現它。基本的腳手架做了類似的事情。

  3. 服務層很可能存儲在機架中間件中。這允許對請求和響應進行一般過濾。