Railsの規約に沿わないシーケンスオブジェクトを利用する
- モデルで
self.sequence_name = 'hoge_sequence'
などと書く。 select hoge_sequence.nextval from dual
などを直接実行する。
もうちょい詳しく
USERSテーブルがある場合、Rails的にはUSERS_SEQというシーケンスがあることを想定している。
USERSが新しく作るテーブルならそれでもいいだろうけど、既存のテーブルで、シーケンス名も規約外だったりする場合は特別に対処する必要がある。
アソシエーションを指定する
という言い方で合っているのかどうなのか。。
self.sequence_name = 'hoge_sequence'
する。primary keyを指定するのと同じノリ。
直接SQLを発行する
oracleならこう。
@conn.exec('Select NEXT_ID.NEXTVAL from dual') {|row| id = row[0]} id = @conn.exec('Select NEXT_ID.NEXTVAL from dual').fetch[0]