Ruby on Rails - 在 .html.erb 文件中显示从 .xml.builder 文件生成的 XML



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

考虑我有一个后控制器和以下视图:

  • /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)

但是我还没有找到构建器的工作等效项

还有其他人遇到过这种情况吗? 需要解决或解决的想法?

谢谢!

通过阅读 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

最新更新