2011-02-28 12 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" 

Bueno, básicamente, esa es la pregunta. Me confunde que métodos como titleize parecen funcionar bien, pero tableize, pluralize y singularize no.No se puede obtener pluralizar/singularizar el trabajo con ActiveSupport :: Inflector (en irb)

¿He olvidado solicitar algo?

(En una nota aparte, noto this page proporciona ejemplos como "post".pluralize, que cuando intenté, resultó en NoMethodError: undefined method 'pluralize' for "post":String. Pero tal vez eso es algo para salvar a otra pregunta.)

Respuesta

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

Para cadena

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

wich realmente va a llamar ActiveSupport::Inflector.pluralize:

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

Esto funcionó para mí, pero tenía curiosidad si tener que incluir ayudantes dentro de tu controlador es una señal de un olor a código en particular. Siento que no debería tener que hacer todo esto ... –

Cuestiones relacionadas