2010-10-04 58 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 

现在,它可以从代码内和从一个动作能够容易地使用