我正在構建一個rails 3應用程序。我會盡力以儘可能簡潔的方式來描述這個應用程序。Rails 3應用程序,「跟隨」不同類型的模型
的兩種主要類型的在此應用程序的型號有:
- 用戶
- 企業
然後還有另外兩個車型:
- 分類
- 小類(嵌套在內個類別)
它們如何協同工作的是:企業可以有(或屬於,而)儘可能多的類別,因爲他們喜歡(和任何相關的子類別以及)。
用戶可以選擇類別「跟隨」,即他們選擇,他們希望在他們的飼料露面的類別,並且屬於這些類別的任何商家會在飼料中顯示(同與子類)
重要的是要注意的是,類別和子類別將由管理員來決定而已,用戶/企業不能添加/銷燬類別的,只要按照現有的
很重要我如何實施這一計劃是建立一個「以下」型號具有以下屬性
- user_id說明
- followable_id
- followable_type
其中將有兩個 「followable_types」:用戶和業務。正如你所看到的,這是一個不太完美的多態模型。
我遇到麻煩的地方就是方法。例如,我將如何創建屬於用戶所關注類別的所有業務的列表?這將需要一些棘手的查詢和大量的駭客。這讓我相信我正從錯誤的角度接近問題。
有人可以引導我走向正確的方向嗎?也許我的架構需要一些工作。或者給我一個暗示,我應該如何寫我的方法。
謝謝!
我也很困惑。用戶可以關注類別和子類別嗎?如果是這樣,那麼你的模型是正確的,但可跟隨的類型將是「類別」或「子類別」,它是一個典型的用戶和「可跟隨」之間的多態關係。 – 2011-03-29 09:58:15
最大你有它。其followable_id而不是category_id的原因是因爲用戶也可以跟蹤子類別。它不是多態的,因爲它的類別不屬於任何一個模型(因爲企業和用戶都可以擁有類別)。如果我感到困惑,我很抱歉。 – goddamnyouryan 2011-03-29 16:47:21