Rails:activerecord的复数词是什么?

时间:2013-11-22 13:14:07

标签: ruby-on-rails activerecord activesupport

我今天发现“英雄”这个词在主动记录中被复数为“英雄”而不是“英雄”。我想知道以下内容: 一个词如何“知道”如何被多元化?我知道有activesupport和inflector,但是对于奇怪的复数有什么样的查找词汇吗?

2 个答案:

答案 0 :(得分:3)

Rails在大多数情况下基于简单的英语语法在复数方面做得很好。

当使用不正确的单词时,您可以在文件config/initializers/inflections.rb中指定正确的表单,如下所示:

ActiveSupport::Inflector.inflections do |inflect|
  inflect.plural /^(hero)$/i, '\1es'

  inflect.plural /^(ox)$/i, '\1en'
  inflect.singular /^(ox)en/i, '\1'
  inflect.irregular 'person', 'people'
  inflect.uncountable %w( fish sheep )
end

答案 1 :(得分:1)

是的@JohnDel你是对的。对于一些常用的不规则单词,其硬编码在此文件中:

https://github.com/rails/rails/blob/9e0b3fc7cfba43af55377488f991348e2de24515/activesupport/lib/active_support/inflections.rb

请参阅文件底部的不规则字词