在导轨和多态关系中使用UUID作为主键

我正在创建一个将分散的rails 3应用程序,我需要使用UUID作为我的表的主键 ,什么是最好的gem,插件为Job。 我还想知道是否有可能在不使用polymorphicable_type列的情况下使用ActiveRecord多态关系,因为我使用的是UUID。

我创建了一个使用UUID作为键的http://github.com/boriscy/uuidrails3 演示 ,你应该检查lib /中的模块UUIDHelper以及所有的迁移。 无需在数据库中添加主键,只需添加索引,因为主键validation字段的唯一性,但我们不需要使用UUID。

将此文件放在lib目录中,并将其添加为初始化程序:

class ActiveRecord::Base set_primary_key :uuid before_create :set_uuid def set_uuid self.uuid = UUID.generate(:compact) end end 

至于关系,vlad是正确的,ActiveRecord需要知道记录在哪个表中才能找到它。 如果你想要这种function,可以试试像MongoMapper这样的东西。