首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于_id字段,CouchRest模型使用自定义值而不是guid

对于_id字段,CouchRest模型使用自定义值而不是guid
EN

Stack Overflow用户
提问于 2011-09-24 04:39:11
回答 1查看 415关注 0票数 2

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

例如。

代码语言:javascript
复制
class Cat < CouchRest::Model::Base
  property :name
end

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-11 07:49:24

您可以尝试使用unique_id,如下所示

代码语言:javascript
复制
class Cat < CouchRest::Model::Base
  property :name
  unique_id :name
end

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

一种可能更好的选择是创建一个getter和setter,它只需更改文档的_id属性

代码语言:javascript
复制
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上查看沙发休息模型的维基条目

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7534552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档