新手问题 求助关于一个数据表的关联关系

qingxp9 · November 06, 2014 · Last by top_weijie replied at April 23, 2016 · 2100 hits

有两个表 Users、Activities 首先是一组关系:一个活动需要一个发起者,一个发起者有很多发起的活动 这里是 User 和 Activity 1 对 n 的关系

这个关系我明白,设置了

class Activity
  belongs_to :user
end

class User
  has_many :activities
end

然后另一组关系:一个活动有很多参与者,一个用户有很多参与的活动 就是 User 和 Activity n 对 n 的关系

但因为和上面第一个关系用到的是同样的表,我想大概是需要别名什么的。多对多需要建立的第三个表是按原先的名字 activity_usership 建呢,还是以设置的别名来建,我就不知道该怎么弄了,还望大家给我点提示

如果是我的话,我会重新设置一个名称,来描述参与者和活动的多对多关系,参考本站 wiki 的 rails 风格指导节点

#1 楼 @lionzixuanyuan 嗯,我知道都使用 has_many :through, 我是不太明白怎么设置别名然后再关联起来

#2 楼 @qingxp9

has_many :attention_users, through: :memberships, source: 'user'

#3 楼 @lionzixuanyuan 谢谢指点,现在已经成功可用了。

class User
  has_many :memberships
  has_many :attention_activities, through: :memberships, source: :activity
end

class Activity
  has_many :memberships
  has_many :attention_users, through: :memberships, source: :user
end

class Membership
  belongs_to :user
  belongs_to :activity
end

#4 楼 @qingxp9 我已经关联了,但是不知道怎么调用数据显示出来

You need to Sign in before reply, if you don't have an account, please Sign up first.