2010-10-04 36 views
0

在我一直在構建的rails(2.3)應用程序中,我有一個輸出整齊XML的XML生成器。我需要拍攝這個XML的快照,並根據特定的用戶操作將其存儲在數據庫(或文件)中。rails:在數據庫中存儲XML生成器的輸出

如何從另一個操作中獲取xml構建器視圖的輸出?

此代碼會導致在單線程應用程序死鎖......

uri = URI.parse("http://localhost:3000") 
    response = Net::HTTP.start(uri.host, uri.port) {|http| 
     http.head('/xmliwanttoarchive.xml') 
    } 

不知道如何處理這一個..乾杯。

回答

0

以上是調用xml構建器的錯誤方法。

我推翻的to_xml方法,而不是使用一個xml.builder視圖

def to_xml(options={}) 
    if options[:builder] 
    build_xml(options[:builder]) 
    else 
    xml = Builder::XmlMarkup.new 
    xml.instruct! 
    build_xml(xml) 
    end 
    xml 
end 

def build_xml(xml) 
    xml.foo("id" => id, "title" => title) do 
    xml.group("id" => group.id, "name" => group.name) 
    xml.bars do 
    bar.each do |session| 
     xml.bar("id" => bar.id, "session_time" => bar.important_thing) 
    end 
    end 
end 

現在,它可以從代碼內和從一個動作能夠容易地使用