इन सभी परमालिंक समाधानों की तरह, दोस्ताना आईडी एक स्ट्रिंग को URL सुरक्षित स्ट्रिंग में बदलने के लिए parameterize
विधि का उपयोग करती है। जैसे इतना:
# encoding: UTF-8
require 'active_support/all'
puts "신품".parameterize
=>
ActiveSupport करने के लिए गैर ASCII तार बदलने के लिए एक तरीका प्रदान करता है:
require 'active_support/all'
puts "Oh Hai There".parameterize
=> oh-hai-there
समस्या जब आप गैर ASCII तार का उपयोग करें, जो parameterize, कोई रिक्त स्ट्रिंग के साथ बदलता है आपकी समस्या के कारण में आता है transliterate
विधि के माध्यम से एक करीबी अनुमान।
# encoding: UTF-8
require 'active_support/all'
include ActiveSupport::Inflector
puts transliterate("Ærøskøbing")
=> AEroskobing
लेकिन, अगर यह एक चरित्र के बारे में पता नहीं है, यह ?? के लिए डिफ़ॉल्ट जाएगा
# encoding: UTF-8
require 'active_support/all'
include ActiveSupport::Inflector
puts transliterate "신품"
=> ??
लेकिन, आप बता सकते हैं कि कैसे पात्रों को संभालने के लिए अनुवाद कर। एक रेल मॉडल में
# Store the transliterations in locales/en.yml
en:
i18n:
transliterate:
rule:
신: "abc"
품: "def"
puts transliterate "신품"
=> "abcdef"
तो तो, आप transliterate(title).parameterize
उपयोग कर सकते हैं के बजाय सिर्फ parameterize। और यदि आप कोरियाई वर्णमाला को लिप्यंतरण अनुभाग में प्राप्त करते हैं, तो आप सुनहरे के करीब हैं।
स्रोत
2013-05-31 13:39:58
इसका उत्तर दिया गया था? मुझे ऐसा नहीं लगता! इसे बंद विषय और बल के रूप में चिह्नित किया गया था। कृप्या! –