开发者

How to add property in module in Rails CouchRest Model to support multiple inheritance?

开发者 https://www.devze.com 2023-04-05 18:55 出处:网络
In my class, I want to include multiple modules.Each module can define its own property to persist in couchDB.

In my class, I want to include multiple modules. Each module can define its own property to persist in couchDB.

Here is an example:

module Owner
 property :name
end

module Animal
 property :type
end

class Cat
 include Owner
 include Animal
end

This doesn't work. I got this error: "undefin开发者_如何转开发ed method `property'". I tried added CouchRest::Model::Embeddable but it won't work for module either. All the examples I am seeing are extending from CouchRest::Model::Base. However, I won't be able to use this approach because Ruby doesn't support multiple inheritance.

I won't be able to change the underlying JSON format. My desired format is {"name":"tom","type":"cat"}.

Any help would be appreciated. Thanks!


According to http://www.couchrest.info/model/embedding.html I think your example would be:

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
0

精彩评论

暂无评论...
验证码 换一张
取 消