账户推荐的模型设计

时间:2011-03-21 22:26:17

标签: ruby-on-rails activerecord

我正在创建一个系统,用户可以引用其他用户,然后获得好处。我目前有一个通过Devise创建的用户模型进行身份验证。

只是想知道创建推介模型的最佳方法是什么?

到目前为止,我的表格与此类似:

id user_id referrer_id

但是,默认情况下,refer_id会推断出名为referrer的模型。无论如何要自动创建推荐?还想知道其他人是如何实现这一功能的。

2 个答案:

答案 0 :(得分:5)

我认为你不需要一个完整的模型 - 只是一个多对一的关系。在Users类中添加一个名为“referenced_by_user_id”的列,然后将以下内容添加到用户模型中。

belongs_to :referred_by, :class_name => "User", :foreign_key => "referred_by_user_id"

has_many :referrals, :class_name => "User", :foreign_key => "referred_by_user_id"

答案 1 :(得分:5)

如果您只需要存储推荐用户,则可能不需要其他型号。只需与另一个User对象关联:

class User < ActiveRecord::Base
  belongs_to :referrer, :class_name => "User"
end

请务必在referrer_id表中添加users列。