用于解决英语复数的Ruby宝石

时间:2012-08-16 12:25:01

标签: ruby-on-rails ruby gem

这是一个奇怪的问题,我认为没有答案,但在这里。

我正在寻找gem,这将允许我从复数词中获得根词。

categories => category
people     => person
apples     => apple

Trick是我需要它在ruby而不是ROR中所以解决方案应该独立于ActiveRecord,它可能内置了这种机制。谢谢。还有关于这个主题的论文我发现http://www.csse.monash.edu.au/~damian/papers/HTML/Plurals.html/以防有人对构建宝石感兴趣:)

3 个答案:

答案 0 :(得分:3)

此行为在ActiveSupport中定义,您可以自行包含此行为,而无需完全要求Rails。

>> require 'rubygems'
=> true
>> require 'active_support/core_ext/string/inflections'
=> true
>> "categories".singularize
=> "category"

答案 1 :(得分:0)

您可以仅要求ActiveSupport的变形,而忽略其余的轨道,如下所示:

require 'active_support/core_ext/string/inflections'

如果这对您不起作用,请查看inflections gem。

答案 2 :(得分:0)

您可以随时安装active_support gem,并且只需要inflector,这样就不会加载所有rails。轨道的许多部分可以单独使用。

$ irb
1.9.3-p194 :001 > require 'active_support/inflector'
=> true 
1.9.3-p194 :002 > ActiveSupport::Inflector.singularize('inflections')
=> "inflection"