Restful讓我束手束腳

在Rails中View+Controller+Helper是緊耦合的,Controller中的方法與相關目錄下的view template一一對應;Model+Migration+DB是緊耦合的。這2大塊之間是松耦合的。


這2塊的內部組織方式是完全不同的:

對於Model層,我們通常會對業務進行OO分析,提取出一些名詞和名詞之間的關係,然後把他們映射成Model,這個過程比較直觀,是相對細粒度的。

對於View層,我們要考慮的是用戶怎麼用着舒服,爲了用戶的方便,頁面可能很簡單,也可能很複雜,一個頁面可能包含多個Form,一個Controller也可能調用多個Model的功能對view提供支持,它是對Model的一個全新的組織,是相對粗粒度的。我們有可能把幾個相互關聯的Model組織到同一個View+Controller裏面集中的向用戶展示。



 如果沒有Restful,一切工作的很好,URL我愛怎麼寫就怎麼寫,全看個人習慣。但是現在Restful來了,一句 map.resources 給了我們7個URL。看看這個

map.resources :articles

 

問題是這句話假定我們有一個名爲ArticlesController的控制器,這無形中把ArticlesController的功能限制爲對某一項資源的CRUD。


想象一下這個場景,我要錄入一篇Article,然後查詢系統中已有的author(作者),把這篇artile與某個author關聯起來。也就是在Add an article頁面還要添加search author的功能,OK,問題來了,search_author這個方法我放哪?ArtilesController嗎?你得自己添加map.connect,這似乎違反了restfulArtilesController要處理另外一個資源的CRUDAuthorsController嗎?AuthorsController怎麼關聯到別的Controllerview? Controller是不是一定要和View一一對應?

 



我覺得應該是我對restful的理解還不夠深入,但至少現在我覺得restful給我帶來嚴重的限制。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章