2011-03-07 50 views
2

我有一個Rails 3模型,它在數據庫(IBM DB2)中包含一個XML列。每當我試圖通過@model.to_xml檢索XML格式這個模型中,我得到的結果XML列逃了出來,像這樣:使用XML列檢索Rails 3模型

<model> 
    <id>1</id> 
    <xml-column>&lt;tag&gt;value&lt;/tag&gt;</xml-column> 
</model> 

我想要實現的是以下幾點:

<model> 
    <id>1</id> 
    <xml-column> 
     <tag>value</tag> 
    </xml-column> 
</model> 

到目前爲止,我嘗試了一些不成功的東西,比如未修改XML列並重寫to_xml方法(我不確定如何有效地解析XML列)。

任何想法?

回答

2

上解決了:

def to_xml(options = {}) 
    options[:indent] ||= 2 
    xml = options[:builder] ||= Builder::XmlMarkup.new(:indent => options[:indent]) 
    xml.instruct! unless options[:skip_instruct] 

    xml.model do 
    xml.id self.id  
    xml.metadata do 
     xml.target! << self.metadata 
    end 
    end 
end 

:)

+1

僅供參考我正在使用Rails 3.1.1和Builder :: XmlMarkup拋出了錯誤「NameError:未初始化的常量ActiveRecord :: Associations :: Builder :: XmlMarkup」它修復了我使用的:: Builder :: XmlMarkup。 – JosephL 2012-07-11 05:13:46

0

你能不能做這樣的事情:

def to_xml 
    super(:except => [:column-xml]).merge!({:column-xml => self.column-xml}) 
end 

我還沒有試過這種FYI

+0

謝謝,但沒有奏效。 – 2011-03-08 16:01:54