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

qingxp9 · 2014年11月06日 · 最后由 top_weijie 回复于 2016年04月23日 · 2097 次阅读

有两个表 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 我已经关联了,但是不知道怎么调用数据显示出来

需要 登录 后方可回复, 如果你还没有账号请 注册新账号