如何使用Rails生成动态XML页面?

Sam*_*Sam 4 ruby xml apache-flex ruby-on-rails

我有一个输出XML字符串的函数:

<expensesAC>
  <cashflow>
    <month>6</month>
    <cash>300</cash>
    <projected>null</projected>
  </cashflow>
  <cashflow>
    <month>6</month>
    <cash>300</cash>
    <projected>null</projected>
  </cashflow>
  <cashflow>
    <month>6</month>
    <cash>300</cash>
    <projected>null</projected>
  </cashflow>
</expensesAC>
Run Code Online (Sandbox Code Playgroud)

我有一个调用的视图genxml.xml.erb,并重定向到mysite.com:3000/genxml.xml.

我需要这个,因为flex需要传递XML文件.但是,我得到的是:

<body>
<expensesAC>
  <cashflow>
    <month>6</month>
    <cash>300</cash>
    <projected>null</projected>
  </cashflow>
</expensesAC>
  <cashflow>
    <month>6</month>
    <cash>300</cash>
    <projected>null</projected>
  </cashflow>
  <cashflow>
    <month>6</month>
    <cash>300</cash>
    <projected>null</projected>
  </cashflow>
</body>
Run Code Online (Sandbox Code Playgroud)

所以,基本上,Rails强制我的XML字符串是HTML.

如何使用我的字符串生成动态XML页面?或者,如何将XML字符串转换为动态生成的XML页面?我不想创建静态文件,这些文件需要动态生成,因为XML集中的数据将是每个用户的私有信息.

Sim*_*tti 6

如果要使用Rails编写XML文件,可能需要从ERB切换到Builder模板处理程序.

如果使用ActiveRecord对象,则还:xml可以在指定渲染选项时使用方便的选项.

def index
  @records = Model.all
  respond_to do |format|
    format.html
    format.xml { render :xml => @records }
  end
end
Run Code Online (Sandbox Code Playgroud)