我最近與我的一位同時也是RoR開發人員的朋友進行了討論。我們討論瞭如何管理Rails模型。就我個人而言,我喜歡僅在默認名稱空間中保留根模型(例如User,Article,Bill等),並且依賴模型會以root的名稱進入一個模塊(例如User :: Profile,User :: Activity)他們與之相關的模型。Rails應用程序中的命名空間模型
另一方面,我見過很多像默認命名空間中有100個模型的項目,比如user_profile,user_activity等等。從Java(Spring)開發的角度來看,java社區傾向於將包裝類組織起來,並將它們按邏輯分組,這讓我覺得非常有吸引力。
所以問題是:模塊中的模型分組是否存在任何缺點(關係定義中的extra:class_name除外),以及人們通常不這樣做的具體原因是什麼?
我不記得上次打開數據庫瀏覽器。隨着紅寶石自然而然地抽象這樣的事情。 據我記得,Foo :: Bar會生成一個「foo_bar」表。唯一的缺點是你必須在關聯中指定一個:class_name => Foo :: Bar。 我想知道如果rails應用程序鼓勵將所有模型保存在一個目錄中,它應該如何處理複雜的應用程序。我的意思是,如果應用程序增長過多,命名空間是需要重構的一部分還是隻能切換到Java?) – FreeCandies 2012-03-28 20:03:44
我通常採用使用前綴作爲一種命名空間的方法,因此您可以創建諸如UserProfile和UserActivity而不是簡介或活動。這導致了列表中的自然分組。很難看到具有500多個模型的應用程序會從命名空間中顯着受益。複雜是複雜的。有時候最好誠實地說一下你的應用程序的複雜程度,而不是試圖通過掩蓋複雜性並使其更難以找到事情來假裝它很簡單。 – tadman 2012-03-28 20:10:31