2007年11月15日

テーブル命名規約について

調べてみました。

C:\usr\local\ruby\lib\ruby\gems\1.8\gems\activesupport-1.4.2\lib\active_support\inflections.rb
にありました(私の環境ではRubyをC:\usr\local\rubyにインストールしています)。

複数形化ルールを抜粋してみました。↓

inflect.plural(/$/, 's')
inflect.plural(/s$/i, 's')
inflect.plural(/(ax|test)is$/i, '\1es')
inflect.plural(/(octop|vir)us$/i, '\1i')
inflect.plural(/(alias|status)$/i, '\1es')
inflect.plural(/(bu)s$/i, '\1ses')
inflect.plural(/(buffal|tomat)o$/i, '\1oes')
inflect.plural(/([ti])um$/i, '\1a')
inflect.plural(/sis$/i, 'ses')
inflect.plural(/(?:([^f])fe|([lr])f)$/i, '\1\2ves')
inflect.plural(/(hive)$/i, '\1s')
inflect.plural(/([^aeiouy]|qu)y$/i, '\1ies')
inflect.plural(/(x|ch|ss|sh)$/i, '\1es')
inflect.plural(/(matr|vert|ind)ix|ex$/i, '\1ices')
inflect.plural(/([m|l])ouse$/i, '\1ice')
inflect.plural(/^(ox)$/i, '\1en')
inflect.plural(/(quiz)$/i, '\1zes')

なるほど、結構力技ですね。これって網羅しきれているのかなと思ってしまいますが、まあ欧米の人がやっているので大丈夫なのでしょう。

ただ、あれなんですね。これだとローマ字表記の場合は落とし穴にはまる場合もあるのですね。Railsのノリとしては、開発要件によってinflections.rbをカスタマイズするものらしいです。
posted by 台北猫々 at 20:54| Comment(0) | TrackBack(0) | 技術メモ(Ruby)
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/6804510

この記事へのトラックバック