2011-05-11 65 views
0

我想向我的用戶顯示爲特定操作生成的xml。在.html.erb文件中顯示從.xml.builder文件生成的xml

想想看,我有一個PostController中及以下觀點:

  • /views/posts/show.xml.builder
  • /views/posts/preview_xml.html.erb

在我preview_xml行動我希望能夠解析show.xml。就像直接調用它並將結果輸出到html中一樣。

我知道有ERB有可能用:

ERB.new(File.read(path_to_file)).result(bindings) 

但我還沒有找到工作等效生成器

有沒有其他人遇到這樣?想法解決或解決?

謝謝!

回答

2

想通了通過閱讀Rails的模板引擎:

我preview_xml方法如下所示:

class PostsController < ApplicationController 
    include :Helpers::TagHelper 

    def preview_xml 
    @post = Post.find(params[:id]) 
    xml = ::Builder::XmlMarkup.new(indent: 2) 
    builder_file = File.read(::Rails.root.to_s + '/app/views/posts/show.xml.builder') 
    require 'builder' 
    instance_eval builder_file 
    @tag_xml = xml.target! 
    end 

end