Старый код, отлично работает в Rails 3.0 на JRuby 1.6.4 с PostgreSQL 9.0:
class User < ActiveRecord::Base
before_validation(:on => :create) do
self.id = generate_random_uuid
end
# Mode code, including a definition for generate_random_uuid that works.
end
Rails 3.1 молча не может установить первичный ключ.
Немного покопался и придумал update_column
, но это отказывается что-либо делать, пока запись не будет сохранена. К сожалению, не так много людей используют первичные ключи UUID в Rails-land, поэтому Googles не так полезны.
Кто-нибудь еще работает с подобной установкой, которая выяснила правильную магию обратного вызова, чтобы получить 3.1, чтобы играть в мяч?