Как добавить свойство в модуль в Rails CouchRest Model для поддержки множественного наследования? - PullRequest
1 голос
/ 16 сентября 2011

В моем классе я хочу включить несколько модулей. Каждый модуль может определите свое собственное свойство для сохранения в couchDB.

Вот пример:

module Owner
 property :name
end

module Animal
 property :type
end

class Cat
 include Owner
 include Animal
end

Это не работает. Я получил эту ошибку: "неопределенный метод" свойство "". Я попытался добавить CouchRest :: Model :: Embeddable, но он не будет работать для Модуль тоже. Все примеры, которые я вижу, простираются от CouchRest :: Модель :: Base. Однако я не смогу использовать этот подход потому что Ruby не поддерживает множественное наследование.

Я не смогу изменить основной формат JSON. Мой желаемый формат: {"name": "tom", "type": "cat"}.

Любая помощь будет оценена. Спасибо!

1 Ответ

0 голосов
/ 10 ноября 2011

Согласно http://www.couchrest.info/model/embedding.html Я думаю, что ваш пример будет:

class Owner < CouchRest::Model::Base
 include CouchRest::Model::Embeddable
 property :name
end

class Animal < CouchRest::Model::Base
 include CouchRest::Model::Embeddable
 property :type
end

class Cat
 property :owner, Owner
 property :animal, Animal
end
...