在我的项目中,我有一个允许用户互相关注的关系模型。
class Relationship < ActiveRecord::Base
attr_accessible :followed_id
belongs_to :follower, :class_name => "User"
belongs_to :followed, :class_name => "User"
end
现在,我还想让用户关注课程和小组。我是否开始一个新的followCourse并跟随Group模型或者我是否建立了关系模型多态?我怎么做?谢谢。
答案 0 :(得分:1)
我不会对可能很大的表使用多态。我认为最好的方法是使用has_and_belongs_to_many
关系来实现这种关系。
请记住在user_id,group_id上创建索引以加快处理速度。您可以使用add_index(:table_name,[:user_id,:group_id])
执行此操作。
我也会建立关系UNIQUE,你可以在:unique => true
命令的末尾追加add_index
。