问题描述
除了a
/ an
文章以外,是否有[ActiveSupport中的#pluralize] [1]之类的东西?
所以基本上我需要类似的东西:
'status'.articleize # => "a status"
'urgent'.articleize # => "an urgent"
解决方法
Linguistics gem似乎可以胜任了。让我们尝试Cary Swoveland的挑战:
require 'linguistics/en'
Linguistics.use(:en)
"one-eyed seaman".en.a
=> "a one-eyed seaman"
"honor".en.a
=> "an honor"
# And OP examples...
"urgent update".en.a
=> "an urgent update"
"status update".en.a
=> "a status update"
,
您可以定义String#articleize
以返回适当的English article:
class String
def articleize
if self[0] =~ /[aeiou]/i
"an #{self}"
else
"a #{self}"
end
end
end
'status'.articleize # => "a status"
'urgent'.articleize # => "an urgent"