Дизайн модели для рефералов аккаунта - PullRequest
1 голос
/ 22 марта 2011

Я создаю систему, где пользователи могут ссылаться на других пользователей и, в свою очередь, получать преимущества. В настоящее время у меня есть модель пользователя, созданная с помощью Devise для аутентификации.

Просто интересно, как лучше всего создать реферальную модель?

Пока у меня есть что-то вроде этого стола:

id user_id referrer_id

Тем не менее, по умолчанию refer_id выведет модель по имени реферер. В любом случае автоматизировать создание рефералов? Также просто интересно, как другие реализовали эту функцию.

Ответы [ 2 ]

5 голосов
/ 22 марта 2011

Если вам нужно только сохранить ссылающегося пользователя, вероятно, нет необходимости в другой модели. Просто свяжись с другим объектом User:

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

Обязательно добавьте столбец referrer_id в таблицу users.

5 голосов
/ 22 марта 2011

Я не думаю, что вам нужна целая модель - просто отношения многие-к-одному.Добавьте столбец в класс Users с именем "refer_by_user_id", а затем добавьте в свою модель User следующее:

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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...