2010-01-24 4 views
7

मेरी rap lyrics explanation website पर, प्रत्येक उपयोगकर्ता http://rapgenius.com/USERNAMEसुरक्षित यूआरएल पर नज़र रखें (घमंड प्रति-उपयोगकर्ता URL को सक्षम करने)

पर एक संबद्ध "पसंदीदा" पृष्ठ है क्योंकि इन पसंदीदा पृष्ठों जड़ नाम स्थान पर कब्जा है, मुझे यकीन है कि बनाने के लिए है कि कोई भी उपयोगकर्ता नाम नहीं लेता है जिसे मैं पहले से ही किसी और चीज़ के लिए उपयोग कर रहा हूं। उदाहरण के लिए:

  • /songs
  • /lyrics
  • /users
  • /posts

मैं सभी शीर्ष स्तर के रास्तों /username मार्ग (जिस पर है की तुलना में अधिक पूर्वता है कि देख सकते हैं कैसे उपयोगकर्ता निर्माण के समय routes.rb के नीचे) ताकि मैं उपयोगकर्ताओं को इन आरक्षित नामों को लेने से रोक सकूं?

उत्तर

2

क्यों बातें खुद के लिए आसान नहीं बनाने के लिए और बस कार्य करें:

def validate 
    reserved = %w(songs lyrics users posts) 
    errors.add(:username, 'is not allowed') if reserved.include?(username) 
end 
+0

तो अपने आप को इस्तीफा देने के लिए मैन्युअल रूप से इस सूची को अद्यतन करने के लिए जब मैं एक नया संसाधन जोड़ने के लिए समर्थन हासिल है? शायद कम से कम कुल परेशानी हो सकती है, मुझे लगता है कि –

+0

मुझे आपका आवेदन नहीं पता है, लेकिन वास्तव में आप कितने बार नए मार्ग जोड़ रहे हैं? इसके अलावा, ऊपर दिया गया कोड अपने इरादे को स्पष्ट रूप से प्रकट करता है और दृश्य से decoupled है। अंत में, रेल 3 राउटर एक अलग जानवर है, इसलिए मार्गों का आत्मनिरीक्षण करने के लिए आप जो भी चालाक कोड उपयोग करते हैं, वह भविष्य में टूटने के लिए परिपक्व है। –

0

शायद आप this का उपयोग कर सकते हैं?

लेकिन ऐसा लगता है कि यह कोई मैच नहीं उठाता है, इसलिए आपको उन मामलों पर झूठी बचाव के लिए एक रैपर लिखना पड़ सकता है।

मैं भी सिर्फ महसूस किया कि आप भी किसी भी मैच का निरीक्षण करने के यकीन है कि यह उपयोगकर्ता मार्ग आप इसे मिलान करना चाहते हैं जाएगा नहीं है बनाने के लिए होता है ...

0

दो जवाबी सवाल:

1) क्यों प्रत्येक उपयोगकर्ता के लिए "पसंदीदा" पेज अपने यूआरआई पेड़ की जड़ में जीने की जरूरत है?

2) वर्तमान में आप इस स्थिति से कैसे निपटते हैं जहां दो उपयोगकर्ता एक ही उपयोगकर्ता नाम चुनते हैं?

1

आप एक प्लगइन में खींचने के लिए करना चाहते हैं तो यह एक उपयोगी एक friendlyid

अपनी साइट

FriendlyId से किया जाता है रूबी ऑन रेल्स के लिए slugging और स्थायी लिंक प्लग इन की "स्विस सेना बुलडोजर" । यह आपको सुंदर यूआरएल बनाने और मानव-अनुकूल तारों के साथ काम करने की अनुमति देता है जैसे कि वे ActiveRecord मॉडल के लिए संख्यात्मक आईडी थे।

अधिक आप के लिए महत्वपूर्ण बात यह सुनिश्चित करने के यूआरएल उत्पन्न आप नियंत्रकों/रास्तों

मेल नहीं खाते
संबंधित मुद्दे