我想为一些没有正确多元化的术语创建一个多元规则。我将把它放在我的inflections.rb文件中。
这些术语是一些复合词,我可以把第一个词,而不是第二个词多元化,但是,在我的例子中,我没有选择只在第一个词上应用多元函数。例如:
'base of knowledge'.pluralize应该返回'bases of knowledge'而不是'base of knowledges'
我尝试使用像这个/\sof\s/这样的regexp来查找字符串上的of部分,但是无法编写规则来正确地转换。
Inflect.plural(?)
我不是在找语言上的解决办法,比如“知识库”。这个例子只是说明性的。
发布于 2015-01-12 12:30:39
通过添加以下规则,我找到了一种改变复合词的方法:
inflect.plural(/(^\w+)\s(of\s\w+)/i,'\1s \2')
然后我得到了:
‘知识基础’.多元->‘知识库’
如预期
发布于 2015-01-09 18:40:53
试试这个:
config/initializers/inflections.rb的文件编辑:
如果您只想要一个方法来处理所有这些类型的更改。您可以定义一个irregular_pluralize方法,它接受与复数相同的输入,或者接受3个对象。
def irregular_pluralize(count, string)
if count > 1
split_string = string.split(" ")
size = split_string.size
first = split_string.first
first.pluralize + " " + split_string.last(size - 1).join(" ")
else
string
end
endhttps://stackoverflow.com/questions/27866538
复制相似问题