Rails默认规则 – 单复数的别扭之处

作者:半瓶墨水   链接:http://www.2maomao.com/blog/ruby-singlur-vs-plural/

Rails强调convention,以期取代config文件。其中很著名的就是:数据库表用某名词的复数形式,rails生成器就以该名词的单数形式来命名文件。

对于英语好的人,这么做可能很方便(只能说可能,因为据我所知有些单词的单复数不止一个形式)

对于英语不好的人,我想知道的是:Rails用的到底是什么规则?

我查了金山词霸,又google了一把,却依然惴惴不安:人家Rails的单复数是不是用的韦伯斯特大辞典?哪个版本的?

这种不安,一直到现在还是一种困扰,我不得不限制对数据库名称的使用,甚至为此牺牲了几个更加可读的名称,因为我不能判断Rails到底能否分辨。

[tag]ruby, rails[/tag]

4 条评论 发表在“Rails默认规则 – 单复数的别扭之处”上

  1. cvu说道:

    基本上都是用通用规则,比如加s,y结尾变成ies。特殊情况通过Inflector.inflections定义,rails源代码里应该有。

    你也可以在你自己的environment.rb里增加定义:
    Inflector.inflections do |inflect|
    # inflect.plural /^(ox)$/i, ‘\1en’
    # inflect.singular /^(ox)en/i, ‘\1’
    # inflect.irregular ‘person people’
    # inflect.uncountable %w( information )
    end

  2. 兔毛猫说道:

    最好在每个版本发行的时候同时提供一个工具来做转换

  3. zhangyuan说道:

    在 rails c下面用 name.pluralize 查就是了

  4. 半瓶墨水说道:

    @zhangyuan 谢谢指出
    5年前好像没有这个

留下回复