Rails中的多对多关系

时间:2010-08-02 17:59:16

标签: ruby-on-rails model has-many relationships

我有两个模型,我想用m-to-m关系连接,但我希望关系有自己的一些数据,例如日期到期或计数或类似......

假设我有用户,组和一些UsersInGroups对象,其中用户和组都具有has_many X, :through Y关系。 UsersInGroups belongs_to用户和群组,但也有join_date,用于显示用户加入群组的时间。

所以我可以使用self.groups.A从用户那里获取组变量,反之亦然,但我如何获得join_date变量?

1 个答案:

答案 0 :(得分:1)

在多对多关系中,如果用户可以拥有多个组,并且您执行aUser.user_in_groups,则它将返回组的数组(这将是表示它们的模型类的实例)。您可以迭代其中的每一个并在每个上获取join_date,或者通过索引到数组中:aUser.user_in_groups [0] .join_date

如果你只是想要一个连接日期或类似的数组,我会研究Ruby收集方法。

迭代:

aUser.users_in_groups.each do |group|
  group.join_date
end