我正在构建一个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