2011-09-16 2 views
1

수업 중에 여러 개의 모듈을 포함하고 싶습니다. 각 모듈은 자체 속성을 정의하여 couchDB에 유지할 수 있습니다. 이 작동하지 않는Rails CouchRest Model에서 모듈에 속성을 추가하여 다중 상속을 지원하는 방법은 무엇입니까?

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"}입니다.

도움을 주시면 감사하겠습니다. 감사! http://www.couchrest.info/model/embedding.html에 따르면

답변

0

나는 당신의 예제가있을 거라고 생각 : 아이디어에 대한

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

감사합니다! 이것은 나를 위해 작동하지 않는 것 같습니다. 기본 JSON 형식을 변경할 수 없습니다. 원하는 형식은 { "name": "tom", "type": "cat"}입니다. 귀하의 코드는 { "owner": { "name": "tom"}, "animal": { "type": "cat"}}의 형식을 생성합니다. –