旧代码,在带有PostgreSQL 9.0的JRuby 1.6.4上的Rails3.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
,但是在记录被保存之前,这拒绝做任何事情。不幸的是,没有太多的人在Rails land中使用UUID主键,所以google没有那么有用。有没有其他人在做类似的设置,那就是找到了正确的回叫魔法,让3.1打球?
最佳答案
嗯..直到今天才注意到,一个包含多个遗留数据库的应用程序在从3.0升级到3.1之后已经停止工作,这就是为什么,即对于遗留数据库(等等),主键不再默认为id.
到目前为止,我的工作解决方案是显式地给出
set_primary_key :id
在每一个模型中。
当做
迈克尔