1

在我的课堂上,我想包含多个模块。每个模块都可以定义自己的属性以保存在 couchDB 中。

这是一个例子:

module Owner
 property :name
end

module Animal
 property :type
end

class Cat
 include Owner
 include Animal
end

这行不通。我收到了这个错误:“未定义的方法‘属性’”。我尝试添加 CouchRest::Model::Embeddable 但它也不适用于模块。我看到的所有示例都是从 CouchRest::Model::Base 扩展而来的。但是,我不能使用这种方法,因为 Ruby 不支持多重继承。

我将无法更改底层 JSON 格式。我想要的格式是 {"name":"tom","type":"cat"}。

任何帮助,将不胜感激。谢谢!

4

1 回答 1

0

根据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
于 2011-11-09T20:29:53.020 回答