aar*_*ona 52 ruby require pluralize
我正在编写一些Ruby代码,而不是Rails,我需要处理这样的事情:
found 1 match
found 2 matches
Run Code Online (Sandbox Code Playgroud)
我安装了Rails所以也许我可以require在脚本的顶部添加一个子句,但有没有人知道一个多元化字符串的RUBY方法?如果脚本不是Rails但我安装了Rails,是否有一个我可以要求的类可以解决这个问题?
编辑:所有这些答案都很接近,但我检查了让它为我工作的那个.在编写Ruby而不是Rails代码时尝试使用此方法作为帮助:
def pluralize(number, text)
return text.pluralize if number != 1
text
end
Run Code Online (Sandbox Code Playgroud)
sca*_*ney 73
实际上你需要做的就是
require 'active_support/inflector'
Run Code Online (Sandbox Code Playgroud)
这将扩展String类型.
你可以做
"MyString".pluralize
Run Code Online (Sandbox Code Playgroud)
将返回
"MyStrings"
Run Code Online (Sandbox Code Playgroud)
为2.3.5尝试:
require 'rubygems'
require 'active_support/inflector'
Run Code Online (Sandbox Code Playgroud)
应该得到它,如果没有尝试
sudo gem install activesupport
Run Code Online (Sandbox Code Playgroud)
然后是要求.
euk*_*ras 55
在大多数情况下,变形器太过分了.
def x(n, singular, plural=nil)
if n == 1
"1 #{singular}"
elsif plural
"#{n} #{plural}"
else
"#{n} #{singular}s"
end
end
Run Code Online (Sandbox Code Playgroud)
把它放在common.rb中,或者你喜欢的通用实用功能和...
require "common"
puts x(0, 'result') # 0 results
puts x(1, 'result') # 1 result
puts x(2, 'result') # 2 results
puts x(0, 'match', 'matches') # 0 matches
puts x(1, 'match', 'matches') # 1 match
puts x(2, 'match', 'matches') # 2 matches
Run Code Online (Sandbox Code Playgroud)
haw*_*awx 11
我个人喜欢语言学宝石,绝对不是与轨道相关的.
# from it's frontpage
require 'linguistics'
Linguistics.use :en
"box".en.plural #=> "boxes"
"mouse".en.plural #=> "mice"
# etc
Run Code Online (Sandbox Code Playgroud)