为ActiveRecord对象设置自定义id值是一种好习惯

时间:2010-02-03 22:32:52

标签: ruby-on-rails activerecord

我正在编写一个简单的rails应用程序来缓存来自Web服务的值。 Web服务返回如下所示的对象列表:

<objects>
    <object>
        <id>12345</id>
        <name>obj name</name>
    </object>
    ....
</objects>

如果我保证它是唯一的,可以使用id作为我的ActiveRecord对象的id吗?或者更好的做法是将它设置为不同的属性并让ActiveRecord处理id?我已经阅读了代码,看起来ActiveRecord上的create方法如果已经设置,则不会生成新的id。我能正确理解吗?

由于

2 个答案:

答案 0 :(得分:2)

如果您的id字段设置为自动增量,则无法指定,至少不容易。但这取决于您的数据库。

我建议独立于您自己的ID存储外部ID。从长远来看,它将为您提供更多的灵活性,并与第三方的ID方案改变隔离。

答案 1 :(得分:0)

我肯定会使用自己的ID,因为在允许外部访问时无法保证。