मैं अपने रूबी ऑन रेल ऐप के लिए एक रेफ़रल प्रोग्राम बना रहा हूं, जैसे कि उपयोगकर्ता एक लिंक साझा कर सकता है जिसमें उनका उपयोगकर्ता आईडी (app.com/?r=ID) शामिल है। यदि कोई रेफरर आईडी मौजूद होता है जब कोई विज़िटर ऐप के मुखपृष्ठ पर उतरता है, तो मुखपृष्ठ पर साइनअप फॉर्म में एक छिपे हुए फ़ील्ड होते हैं जो रेफरर आईडी के साथ पॉप्युलेट करता है। नियंत्रक तब आईडी का पता लगाता है और संदर्भित आगंतुक साइन अप करता है तो रेफ़रल तालिका में एक नया रेफ़रल बनाता है। यह काम करता है, और यहाँ कोड की है कि हिस्सा है:रेफ़रल प्रोग्राम - कुकीज़ और अधिक (रेल)
@referrer = User.find(params[:r]) rescue nil
unless @referrer.nil?
@referral = Referral.new(:referrer_id=>@referrer.id)
end
सुंदर सरल सामान है, लेकिन यह तोड़ने के लिए बहुत आसान है (पूर्व: अगर आगंतुक मुखपृष्ठ से चला, तो संदर्भ आईडी खो दिया है)। मुझे लगता है कि कुकीज एक और मजबूत विधि हो सकती है, जहां संदर्भकर्ता की आईडी वाली एक कुकी निर्दिष्ट उपयोगकर्ता के कंप्यूटर पर x दिनों के लिए संग्रहीत होती है। यह काफी आम है, खासकर ग्रुपन जैसे संबद्ध कार्यक्रमों के साथ, लेकिन मैंने कभी कुकीज़ के साथ काम नहीं किया है और यह नहीं पता कि कहां से शुरू करना है।
इसके अलावा, क्या रेफ़रल सिस्टम के URL को मुखौटा या बदलने का कोई अच्छा तरीका है? इसके बजाय app.com/?r=1842 होने के, मैं app.com/x39f3 < की तरह कुछ पसंद करेंगे - किसी विशेष उपयोगकर्ता के साथ जुड़े संख्या का एक यादृच्छिक रूप से उत्पन्न अनुक्रम, r = भाग के बिना?।
किसी भी मदद की बहुत सराहना की जाती है। धन्यवाद!