如何在Rails中为has_many - has_and_belongs_to_many关系创建评级系统

时间:2012-08-17 09:58:41

标签: ruby-on-rails ruby-on-rails-3 activerecord has-and-belongs-to-many rating-system

我有一个应用程序:

User has_many Openings

Opening belongs to User & has_and_belongs_to_many Categories

Category has_and_belongs_to_many Openings

我正在尝试建立一个评级系统,用户对每个类别的每个开放进行评分,并且正在努力查看我需要哪些关系。任何人都可以帮我指出正确的方向吗?

基本上我希望评级属于opening_category关系。

1 个答案:

答案 0 :(得分:1)

不要使用has_and_belongs_to_many关联,而是希望has_many通过关系

因此,您创建了一个新模型

class OpeningCategory
  belongs_to :opening
  belongs_to :category
end

然后你可以使用Opening has_many:categories,:through => :opening_categories和Category has_many:opens,:through => :opening_categories

您的评分可以使用OpeningCategory完成,无论是平均评级列,还是单独的评级模型:belongs_to:opening_categories。