這可能是一個非常愚蠢的問題,但我並沒有清楚地意識到如何最好地管理它,所以想把它放在這裏看看是什麼是常見的做法。用於UI模型和數據模型的Rails 3項目結構
從.NET我的web應用程序即將從不1個項目,這就是一切,我傾向於至少有一個數據層項目與堅持實體到數據庫並進行交易,這些模型代表說,在友好的一個DB 實體方式。然後我有我的UI項目,它有自己的模型,這是UI實體的表示,它可能具有基於驗證的信息,並且很可能是更多的減少模型,只暴露需要的內容。
所以我試圖走出這裏主要的一點是,雖然我們可以有一個用戶實體模型來表示可能會在用戶界面層和數據層略有不同...
現在快進到rails,你創建你的項目,它帶有數據庫連接(我相信它可以換成你想要的任何味道),驗證和其他框架和功能的整體方式。這似乎意味着我不再需要2個項目,只有1個包含在這裏和所有爲我完成的項目中,所以我需要擔心的是製作我的模型。
這是我有點困惑的部分,因爲可以說我正在使用ActiveRecord我需要製作我的模型並從ActiveRecord :: Base繼承,然後我需要設置此模型如何連接到其他模型所以我有我的模型的數據關注排序,現在我需要設置我的用戶界面的關注,關於驗證和字符串長度等...現在,這些去...我假設在同一模型,但然後模型不是隻是一個簡單的數據表示,它的一個東西包含數據庫和視圖的關注,誰知道還有什麼。
把所有東西放在這個地方似乎有點奇怪。我知道.net中有很多例子,其中數據模型中的大對象圖表示與數據模型非常不同,因此將它們耦合到一個模型中是明智的,或者Ruby和它的框架非常靈活在這個領域你沒有這些相同的問題?如果是的話是有一些例子或物品可以在我的心中,你是如何避開那些讓你分開您的問題有維護的代碼正常的問題凝固......
===編輯===
只是試圖澄清任何混淆,在我的文章中,當我說我的觀點模型和觀點關注時,我並不是指表達方面的擔憂。如果遇到這種情況,我很抱歉。我的意思是我可能(在一個普通的.net示例中)有一個UserStorage模型,它關心的是持久化User實體。然後,我在UI層有一個顯示許多用戶的視圖,一個顯示單個用戶的更詳細的視圖。您可能在這裏有兩個不同的模型,一個是UserSummary模型和一個UserDetails模型,兩者都部分代表一個用戶實體,但是針對有問題的實際視圖進行了自定義,因爲您可能會遇到UserDetails也變爲用戶組合和公司實體,這意味着有2個基於存儲的類被送入1個基於視圖的類。
在這些示例和指南中,您應該有1個視圖模型來處理這些問題以及存儲問題,在這種情況下,看起來好像我處於有視圖的情況模型是一個用戶和公司的組成,這個視圖層類擔心它的存儲,因爲它從來沒有存儲爲它自己,它在數據庫/數據存儲中存儲爲2個獨立的模型。
這是我試圖讓在這裏真正的問題,好像你的觀點被緊緊地捆綁在一起,而我已經習慣是2件不同的事情,不應該混......就像把你的主要存儲擔憂場和在同一板上布丁...
你100%正確,數據完整性是一個存儲問題,如果你可以免費獲得視圖級驗證,那麼一切都會更好。這就是我所追求的,因爲我習慣於我的視圖模型只是沒有邏輯的POCO/POJO,並且如果Rails傾向於將其模型視爲更多上下文數據的入口,那麼這對於爲什麼事情是這樣完成的。模型本身具有邏輯似乎仍然很危險,但這很可能是因爲我對Ruby/Rails沒有經驗...... Rails MVC中的模型更像是MVVM中的ModelView – Grofit
查看了演示者模式鏈接,並解釋了這一點我想到的那種東西,所以會給你鏈接的答案,並給我一個關於Rails如何看待其模型,視圖和控制器之間關係的清晰思路。 – Grofit