我是Rails的新手,並試圖瞭解如何使用Rails中可用的工具構建「複雜」模型(及其關聯)。快速想象下面的示例場景:Users
是ONE比賽的成員Team
。用戶可以創建Cars
和Schedules
。這些汽車有Drivers
,Fuel
等級,Engines
和Wheels
。這些Wheels
具有Tires
,Hubs
和MilesDriven
。你的想法...將模型與父項關聯的基本導軌模式(嵌套?)
鑑於所有關於嵌套只有1級深的警告......我仍然奮鬥着如何將REST風格和Rails-Y和呈現的用戶界面,允許用戶建立一個Car
與Tires
。
我知道我們有一個Session
& Cookie
在我們的處置以及隱藏的領域。因此,用戶登錄...並路由到他們的團隊頁面teams(current_user.team_id)
。然後他們想創建一個Car
。這路線new_team_car_path(current_user.team_id)
他們可以在那裏建立一輛車...現在我想添加一個車輪到這輛車...所以這樣的路線new_team_car_wheel_path(current_user.team_id, car_id)
等等,等等......?我想不是......但是,Rail-y的方式是什麼?
此外,內置一切都將被關聯,最終,一隊(和用戶),它最好是「進位」的team_id
和/或user_id
協會一路下跌到Tire
或是合理的通過在運行時關聯層次結構來查詢Team
?
我敢肯定,這是基本的東西,但newbness有我困惑如何最好地接近它...
ok。謝謝!所以,爲了澄清......你認爲將'user' *和*'team'嵌入到'car'(或'wheel',或者任何深度嵌套的資源)是值得的?與在你需要的時候或在你需要的時候,'belongs_to'鏈回到找到'user'或'team'的對比?!?如果是這樣,這是出於優化原因?所以你不是經常查詢數據庫?要麼..?? – Meltemi 2010-12-17 23:10:01
在這種特殊情況下,您已經支付了查找用戶的性能成本,因爲Devise(或其他)在每個請求上都會這樣做。所以我說你*不需要嵌套資源,因爲有一種內置的方式來檢測user和它的關聯。 – zetetic 2010-12-17 23:16:11