ruby-on-rails – Rails:渲染XML添加标签

我有一个Rails控制器,它将以 XML格式输出哈希,例如:
class MyController < ApplicationController
  # GET /example.xml
  def index        
    @output = {"a" => "b"}

    respond_to do |format|
      format.xml  {render :xml => @output}
    end
  end
end

但是,Rails添加了< hash>标签,我不想要,即:

<hash>
  <a>
    b
  </a>
</hash>

我该如何输出呢?

<a>
  b
</a>

解决方法

我想如果将对象转换为XML,则需要一个包装所有内容标签,但您可以自定义包装器的标签名称
def index        
  @output = {"a" => "b"}

  respond_to do |format|
    format.xml  {render :xml => @output.to_xml(:root => 'output')}
  end
end

这将导致:

<output>
  <a>
    b
  </a>
</output>

相关文章

以下代码导致我的问题: class Foo def initialize(n=0) @n = n end attr_accessor :n d...
这是我的spec文件,当为上下文添加测试“而不是可单独更新用户余额”时,我得到以下错误. require 's...
我有一个拦截器:DevelopmentMailInterceptor和一个启动拦截器的inititializer setup_mail.rb. 但我想将...
例如,如果我有YAML文件 en: questions: new: 'New Question' other: recent: ...
我听说在RSpec中避免它,let,let !,指定,之前和主题是最佳做法. 关于让,让!之前,如果不使用这些,我该如...
我在Rails中使用MongoDB和mongo_mapper gem,项目足够大.有什么办法可以将数据从Mongoid迁移到 Postgres...