ActiveRecordおさらい その壱 テーブル周りの規約

Railsおさらいシリーズ。
忘れてること多々なので書いて思い出そうという趣旨です。

ActiveRecordの前提

テーブルとモデルクラスが1対1で対応するO/Rマッパー。
テーブルの構造に関しては以下の規約が基本。

  • 主キーがオートナンバー型が必須
  • 主キーのカラム名はidがデフォルト
  • テーブル名は複数形がデフォルト
  • テーブル名はモデルクラス名を小文字アンダースコア区切りにしたものがデフォルト

主キーがオートナンバー型必須なのはマスタデータのIDを任意に設定したいときにちょっとやりにくかったりする。
主キーのカラム名とテーブル名に関しては変更可能だが、必要がなければ規約に従ったほうが絶対幸せになれる。

主キーとテーブル名を変更する

どうしても変更したい場合はモデルクラスの中で以下のメソッドを使って変更できる。

  • set_primary_key(column_name)
  • set_table_name(table_name)
class HogeModel < ActiveRecord::Base
  set_primary_key :code
  set_table_name  :hoges
end

その昔は私もcode派でした。

テーブル名の複数型をやめたい

全体的にテーブル名の複数形を止めたい場合は、pluralize_table_names属性の値をfalseにするとできる。
個々のモデルでset_table_nameしても実現できるが、テーブルが多すぎてめんどくさい場合になど使うと便利っぽい。

参考

Ruby on Rails入門―優しいRailsの育て方

Ruby on Rails入門―優しいRailsの育て方

posted with amazlet on 07.10.06

西 和則
秀和システム (2006/08)
売り上げランキング: 45695

おすすめ度の平均: 4.5

3 これは入門書ではありません。
3 入門用としては残念。
5 Railsスタートのベストチョイス

素敵な本だけど、入門用としては濃すぎる気がする。

近況

その日布団にはいるまで一日は終わらないんだ。
日付をこの日にするためにタイムスタンプちょっと戻したけどセーフってことで。ひとつ。