我正在创建一个分散的rails 3应用程序,我需要为我的表使用 UUID 作为 主键 ,将是Job的最佳宝石插件。我还想知道是否可以在不使用polymorphicable_type列的情况下使用 ActiveRecord 多态关系,假设我正在使用UUID。
我创建了一个使用UUID作为键的演示 http://github.com/boriscy/uuidrails3,您应该检查lib /中的模块UUIDHelper以及所有迁移。无需在数据库中添加主键,只需添加索引,因为主键可以验证字段的唯一性,但我们不需要使用UUID。
答案 0 :(得分:6)
将this file放在lib目录中,并将其添加为初始化程序:
class ActiveRecord::Base
set_primary_key :uuid
before_create :set_uuid
def set_uuid
self.uuid = UUID.generate(:compact)
end
end
至于关系,vlad是正确的,ActiveRecord需要知道记录在哪个表中才能找到它。如果您想要这种功能,请尝试使用MongoMapper等其他功能。