La mayoría de las veces nunca pruebo la singularidad o el plural, simplemente lo convierto a la forma singular o plural que requiero.
En Rails 2.3.x esto era posible, escribiendo algo como esto
plural_form = org_word.singularize.pluralize
singular_form = org_word.pluralize.singularize
Trabajar más allá de esto, una función de trabajo es fácil suministrar:
require 'active_support'
def is_singular?(str)
str.pluralize.singularize == str
end
%w(word words rail rails dress dresses).each do |v|
puts "#{v} : #{is_singular?(v)}"
end
la que dicta la siguiente salida:
word : true
words : false
rail : true
rails : false
dress : true
dresses : false
En Rails 4, con las palabras dadas, ahora es mucho más fácil. Usted sólo puede hacer
plural_form = org_word.pluralize
singular_form = org_word.singularize
y por lo tanto la función se vuelve mucho más fácil así:
require 'active_support'
def is_singular?(str)
str.singularize == str
end
El problema "dress" .singularize se resuelve aquí: https: //rails.lighthouseapp.com/projects/8994/tickets/2399-incorrect-inflectors-for-business-or-ness # ticket-2399-5 – kikito