Вы можете попробовать использовать unique_id следующим образом
class Cat < CouchRest::Model::Base
property :name
unique_id :name
end
unique_id вызовет любой метод перед первым сохранением документа и назначит его как _id документа. Однако тогда у вас будут документы Cat с установленными полями _id и name. Они могут даже выйти из синхронизации, если изменить имя.
Возможно, лучшим вариантом будет создание метода получения и установки, который просто изменит атрибут _id документа
class Cat < CouchRest::Model::Base
def name
self['_id']
end
def name=(value)
self['_id']=value
end
end
Поскольку в этом случае нет дополнительных свойств, name всегда будет возвращать идентификатор документа. Однако после написания документа изменить имя невозможно, так как переназначение _id не будет иметь никакого эффекта.
Для получения дополнительной информации:
Здесь - это rdoc для unique_id.
Вы также можете проверить вики-записи моделей дивана для проверки