gpt4 book ai didi

ruby-on-rails - CouchRest 模型对 _id 字段使用自定义值而不是 guid

转载 作者:行者123 更新时间:2023-12-04 06:13:18 25 4
gpt4 key购买 nike

我想知道是否有一种方法可以使用自定义字符串值(例如对象的名称)作为 _id 字段而不是 CouchRest 模型中的 guid。

例如。

class Cat < CouchRest::Model::Base
property :name
end

默认情况下,它将使用 guid 作为 _id 字段。但我只想使用 name 属性作为 _id。

最佳答案

您可以尝试使用 unique_id 如下

class Cat < CouchRest::Model::Base
property :name
unique_id :name
end

unique_id 将在第一次保存文档之前调用任何方法,并将其分配为文档的 _id。但是,您将拥有一个同时设置了 _id 和 name 字段的 Cat 文档。如果名称更改,它们甚至可能不同步。

一个可能更好的选择是创建一个 getter 和 setter,它们会简单地更改文档的 _id 属性
class Cat < CouchRest::Model::Base
def name
self['_id']
end

def name=(value)
self['_id']=value
end
end

鉴于在这种情况下没有额外的属性,name 将始终返回文档的 id。但是,一旦写入文档就无法更改名称,因为重新分配 _id 将不起作用。

想要查询更多的信息:
Here是 unique_id 的 rdoc。
您还可以查看沙发休息模型的维基条目 validations

关于ruby-on-rails - CouchRest 模型对 _id 字段使用自定义值而不是 guid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7534552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com