我正在创建一个系统,用户可以引用其他用户,然后获得好处。我目前有一个通过Devise创建的用户模型进行身份验证。
只是想知道创建推介模型的最佳方法是什么?
到目前为止,我的表格与此类似:
id user_id referrer_id
但是,默认情况下,refer_id会推断出名为referrer的模型。无论如何要自动创建推荐?还想知道其他人是如何实现这一功能的。
答案 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
列。