2010-06-21 2 views
2

Ruby on Rails를 사용하여 XML 문서를 조작하는 응용 프로그램을 구현하고 있습니다. 모든 로직을 캡슐화 한 모델을 저장하고 저장할 때 해당 XML 문서로 변환하려고합니다. 내 모델에는 데이터베이스 지속성이 필요하지 않지만 내 모델에 ActiveRecord와 같은 유효성 검사 메커니즘이 필요합니다. 또한 XML과 Ruby 객체 사이를 변환하기 위해서는 XML 매핑 라이브러리가 더 쉽습니다.Rails 모델에 대한 XML 매핑 및 유효성 검사

테이블없이 액티브를 사용 할 수 꽤 a few solutions이 있지만, 액티브 'S 필드가 잘 작동하지 않는 것 나에게 XML 매핑 라이브러리 (예를 들어 ROXML, XML Mapping)을 보인다. 즉, 구문과 충돌하여 함께 사용할 수있는 것처럼 보이지 않습니다.

따라서이 경우 선호되는 솔루션이 무엇인지 알고 싶습니다. 유효성 검사 기능이있는 테이블없는 모델에서 XML 바인딩 라이브러리를 사용할 수있게 해주는 솔루션입니다.

예를 들어, 하나의 솔루션은 2 개의 개별 모델을 갖는 것입니다. 하나는 tableless ActiveRecord이고 다른 하나는 xml 바인딩을 사용하는 일반 Ruby 객체입니다 (this post에 설명 된 것과 같습니다). ActiveRecord 모델은 검증을위한 모델입니다. XML로 변환하려면 먼저 XML 바인딩 모델로 복사해야합니다. 이 솔루션은 효과가 있지만 우아한 것은 아닙니다.

답변

0

나는 실제로 그것이 더 복잡해 보이는 질문을 만들 수도 있습니다. 필자가 원했던 것은 ActiveRecord 기능 (유효성 검사, 해시에서 객체 생성) 및 XML 바인딩의 하위 집합입니다. 이 경우 ActiveRecord와 유사한 기능을 제공하는 라이브러리가있는 표준 Ruby 객체를 사용하는 것이 좋습니다. 확인을 위해 validatable이 적합합니다. 해시로부터 객체를 생성하는 것도 쉽게 구현 될 수 있습니다.

요약하면 Ruby 클래스 + ROXML + 유효성 검사 가능 젬 + 사용자 정의 해시 - 오브젝트 구현은 나를 대신 할 방법입니다.

0

"데이터베이스 지속성"이 필요하지 않지만 XML 파일에 저장하고 읽으려고한다고 말합니다. 따라서 파일에 대한 지속성이 필요합니다. "데이터베이스 지속성"과 그 차이는 단지 언어 적이기 때문에 전체 데이터베이스를 파일에 저장하는 SQLite가 있기 때문입니다.

your own adapter을 구현하여 원하는 작업을 수행 할 수 있습니다. 복잡하지는 않지만 시간이 걸릴 것입니다.

+0

응용 프로그램은 XML 문서를 조작하지만 저장하지는 않습니다. 우리는 다른 웹 서비스와 문서를주고받습니다. 우리는 응용 프로그램에서 데이터베이스 지속성이 필요하지 않습니다. – ejel

관련 문제