何もあなたがIDなしのActiveRecordでそれを使用することを防ぐない
create_table :posts, :id => false do |t|
t.integer :version
t.datetime :updated
end
クエリ:
>> Post.create(:version => 1, :updated => Time.now)
=> #<Post version: 1, updated: "2009-05-05 19:24:31">
>> Post.all
=> [#<Post version: 1, updated: "2009-05-05 19:24:31">]
>> Post.all(:conditions => { :version => 1 })
=> [#<Post version: 1, updated: "2009-05-05 19:24:31">]
ログレポートこれらのSQL要求:
CREATE TABLE "posts" ("version" integer, "updated" datetime) ;
INSERT INTO "posts" ("version", "updated") VALUES(1, '2009-05-05 19:24:31');
SELECT * FROM "posts"
SELECT * FROM "posts" WHERE ("posts"."version" = 1)
役に立った!
出典
2009-05-05 19:30:17
tal
この表は、Railsが 'schema_info'テーブルを使って移行バージョンを追跡する方法と似ています。 – daustin777
私はこのトピックに関するブログを公開しています:http://ho.race.hk/blog/?p=208 – ohho