2011-02-28 9 views
18
irb(main):001:0> require 'active_support' 
=> true 
irb(main):002:0> require 'active_support/inflector/inflections' 
=> true 
irb(main):003:0> ActiveSupport::Inflector.pluralize('test') 
=> "test" 
irb(main):004:0> ActiveSupport::Inflector.singularize('tests') 
=> "tests" 
irb(main):005:0> ActiveSupport::Inflector.titleize('hat simulator') 
=> "Hat Simulator" 
<ort::Inflector.tableize("america's number one hat simulator") 
=> "america's number one hat simulator" 

अच्छी तरह से, यह सवाल है, तो बहुवचन/एकवचन करने के लिए काम नहीं कर सकता। यह मुझे भ्रमित कर रहा है कि titleize जैसी विधियां ठीक काम करने लगती हैं, लेकिन tableize, pluralize और singularize नहीं है।ActiveSupport :: इन्फलेक्टर (आईआरबी में)

क्या मुझे कुछ चाहिए?

(एक अलग टिप्पणी पर, मैं this page"post".pluralize, जो जब मैंने कोशिश की, NoMethodError: undefined method 'pluralize' for "post":String में हुई जैसे उदाहरण प्रदान करता है पर ध्यान दें। लेकिन शायद कि एक और सवाल के लिए बचाने के लिए कुछ न कुछ है।)

उत्तर

33
require 'active_support/inflector' 
ActiveSupport::Inflector.pluralize('test') 
#=> "tests" 

स्ट्रिंग के लिए

require 'active_support/core_ext/string' 
"test".pluralize 
#=> "tests" 

जो वास्तव में ActiveSupport::Inflector.pluralize कॉल करेगा:

def pluralize 
    ActiveSupport::Inflector.pluralize(self) 
end 
+0

यह मेरे लिए काम करता था, लेकिन अगर आप अपने नियंत्रक के भीतर हेल्पर्स शामिल करना चाहते हैं तो मुझे उत्सुकता है कि एक विशेष कोड गंध का संकेत है? मुझे लगता है कि मुझे यह सब नहीं करना चाहिए ... –

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