Teste si un mot est singulier ou pluriel dans Ruby on Rails
Question rapide.
Comment puis-je tester un mot pour voir si il est singulier ou pluriel?
J'aimerais vraiment:
test_singularity('word') # => true
test_singularity('words') # => false
Je parie que rails est capable!
Grâce.
source d'informationauteur doctororange
Vous devez vous connecter pour publier un commentaire.
Bien dans les rails, vous pouvez faire un
string#singularize|#pluralize
comparaison de retourner une valeur true ou false.Mais je pense que en raison de la nature même du langage, ce aurions besoin d'une sauvegarde à n'être tout à fait précis.
Vous pourriez faire quelque chose comme ce
Mais de voir quelle est la précision, j'ai couru rapidement un ensemble de mots.
J'ai été un peu surpris en fait, depuis la "robe" est la marque du pluriel correctement, mais quand il va à travers le #au singulier, il s'exécute dans un peu de plomb dans l'aile.
La plupart du temps je n'ai jamais tester la singularité ou au pluriel, je viens de le convertir au singulier ou au pluriel j'ai besoin.
Dans Rails 2.3.x cela était possible, d'écrire quelque chose comme ceci
Travailler davantage sur ce, un travail de la fonction est facile à fournir:
qui donne le résultat suivant:
Dans Rails 4avec les mots, il est maintenant beaucoup plus facile. Il vous suffit de faire
et donc la fonction devient beaucoup plus facile ainsi:
Ni ruby ni rails de venir avec une méthode spécifique pour l'analyse de la "pluralité" sur les mots.
Comme nowk dit, le plus que vous pouvez faire est de mettre en œuvre vous-même, la comparaison avec les
word.pluralize
etword.singularize
. Cela vous donnera un rapide et bon marché-et-en général-un bon moyen de tester. Il échoue de temps en temps, même si.Si vous avez besoin de plus de précision, vous aurez besoin d'utiliser la Ruby Linguistique gemqui peut traiter avec la robe et robes correctement (mais c'est plus lourd).