Я сейчас работаю над Padrino с помощью CouchDB бэкэнд. Мне нужно иметь модель для хранения json, кроме некоторых общих строк. Модель выглядит (в псевдокоде):Хранение объекта json в Padrino CouchDB model
name: 'UniqueName',
properties: { prop1: val1, prop2: val2 }
Я не могу предсказать, сколько значения которых типы должны быть сохранены в properties
. В настоящее время я использую общую модель:
padrino g model MyModel name:string, properties:string
Перед сохранением свойств я строю json; при загрузке я создаю json из строки. Я чувствую, что я поступаю неправильно. Поскольку CouchDB готов хранить объекты json как есть, интересно, есть ли способ сказать модели Падрино, что последнее поле - json для его хранения изначально? Как:
name: 'UniqueName',
properies:
- prop1: val1,
- prop2: val2
Я вижу, что я мог бы создать отдельную коллекцию и передать его _id
MyModel
из, но в данный момент я хочу, чтобы хранить его вместе с его name
. Является ли это возможным?
Я вижу CouchDB схематично. Остается только вопрос: как я описал миграцию, например? модель padrino/rails? Миграция, скорее всего, будет независимой от ORM, и я хочу сохранить ее. – mudasobwa
Падрино использует [CouchRest ORM] (https://github.com/couchrest/couchrest), чтобы поговорить с CouchDB. То, что вы пытаетесь сделать, - это то, что называется Casting. См. Раздел [CouchRest - Property Arrays] (http://www.couchrest.info/model/properties.html) в Свойствах модели. Также см. Документацию [CouchRest_ExtendDocument] (https://github.com/couchrest/couchrest_extended_document#general). Поэтому, чтобы ответить на ваш вопрос, модель/миграция будет 'property: properties, [String]' – Besto
Спасибо, он отвечает на вопрос. – mudasobwa