2014年8月29日金曜日

rails4のActiveRecordでid以外をプライマリーキーに設定する

rails使ってる場合、DBのテーブルのプライマリーキーはidにしといた方が楽なのですが、
他のテーブルとの関連とか考えるとすべてのテーブルでidってのはなかなかわかりづらいです。
なので、ActiveRecordでid以外をプライマリーキーに設定したいです。

まずはrailsのバージョンを確認
$ bundle exec rails -v
Rails 4.1.4

DBのテーブルはこんな感じ
create table sometest4s(
  sometest4_id bigint(10),
  sometest3_id bigint(10),
  val varchar(256),
  ins_date datetime default '9999-12-31 23:59:59',
  primary key (sometest4_id)
);

modelでのプライマリーキーはこんな感じで設定します。
コメントアウトしてるのはrails3のときの設定方法のようです。
$ cat app/models/sometest4.rb 
class Sometest4 < ActiveRecord::Base
#  set_primary_key :sometest4_id
   self.primary_key = :sometest4_id
end

参考URL
http://qiita.com/k-shogo/items/884498ad512c0e6eb303
http://www.atmarkit.co.jp/ait/articles/1104/12/news135.html

0 件のコメント:

コメントを投稿