【发布时间】:2016-08-03 18:32:58
【问题描述】:
我有一个 User 模型和一个 UserReferral 模型(简化版)。
基本上一个用户可以推荐其他用户,我会记录下来。但是一个用户只能被一个用户推荐。
User:
id
....
UserReferral:
id
user_id #the person initiating the referral
reffered_user_id #the person that got the referral
我希望能够说 User.first.converted_users 来返回第一个用户推荐的所有用户(可以为空)
我还希望能够说 User.first.referring_user 返回推荐第一个用户的单个用户(可以是 nil)。
目前我有用户:
has_many :user_referrals
has_many :converted_users, through: :user_referrals, source: :user
在 UserReferral 中:
belongs_to :user
has_many :users, primary_key: 'reffered_user_id', class_name: 'User'
我尝试了各种关联组合,我们将不胜感激。我已经阅读了其他几个答案,但它们都涉及第三个连接表,我认为我不一定需要。
【问题讨论】:
标签: mysql ruby-on-rails activerecord associations