2010-12-12 12 views
6

यह काम करता है, लेकिन बदसूरत एक छोटा सा दिखता है:रूबी (रेल पर) में एक प्रतीक को बहुवचन कैसे करें?

s = :shop 
s.to_s.pluralize.to_sym # => :shops 

वहाँ एक Symbol pluralize करने के लिए एक अच्छा तरीका है?

+2

नहीं, क्योंकि चिह्न बदला जा नहीं होती हैं (वे अडिग हैं)। – mpd

उत्तर

8

आप String को बहुवचन कर सकते हैं, जो वास्तविक पाठ का प्रतिनिधित्व करता है। Symbol एस थोड़ा अधिक सार हैं।

तो, परिभाषा के अनुसार, नहीं। हालांकि, शायद आप प्रतीक वर्ग परिभाषा खोल सकता है और जोड़ें:

class Symbol 
    def pluralize 
    to_s.pluralize.to_sym 
    end 
end 

उसके बाद, आप बस फोन कर सकते हैं:

:shop.pluralize # => :shops 
4

नहीं, यही तरीका है।

3

आप आरामदायक रूबी की कक्षाओं में फेरबदल कर रहे हैं, तो यह काम करता है:

class Symbol 
    def pluralize 
    self.to_s.pluralize.to_sym 
    end 
end 

मैं अभी तक एक और अधिक सुरुचिपूर्ण समाधान खोजने के लिए है, हालांकि मुझे लगता है कि अगर वहाँ था, यह शायद सिर्फ कुछ इसी तरह लागू करने रेल होगा मेरे ऊपर क्या है।

संबंधित मुद्दे