显示从.html.erb文件中的.xml.builder文件生成的xml

时间:2011-05-11 20:59:38

标签: ruby-on-rails xml ruby-on-rails-3 builder

我想向用户展示为某个操作生成的xml。

考虑一下我有一个 PostController 和以下视图:

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

在我的preview_xml操作中,我希望能够解析show.xml.builder就像直接调用它并将结果输出到html中一样。

我知道 ERB 可以使用:

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

但我没有找到构建器

的工作等效项

有没有其他人遇到这个?想要解决或解决的想法?

谢谢!

1 个答案:

答案 0 :(得分: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