Sha256: 3bde5f8f1cf66d674bc962fa49363e289fb1122342587a145394085dccc39ee5
Contents?: true
Size: 819 Bytes
Versions: 1
Compression:
Stored size: 819 Bytes
Contents
require 'devise/hooks/referable' class Referral < ActiveRecord::Base belongs_to :referrer, :polymorphic => true belongs_to :recipient, :class_name => 'User' before_create :generate_token class << self def referrer_types User.referrer_types end def lookup_referrer(token) unless token.blank? referrer_types.map{ |type| type.to_s.classify.constantize }.each do |klass| ref = klass.find_by_referrer_token(token) return ref unless ref.nil? end end return nil end def from_token(token) sender = lookup_referrer(token) if sender Referral.create do |ref| ref.referrer = sender end end end end def generate_token self.referral_token ||= Devise.friendly_token end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
devise_referable-0.1.0 | app/models/referral.rb |