簡體   English   中英

為圖表庫准備XML數據

[英]Preparing XML Data for Chart Library

我正在使用將XML文件/字符串作為輸入的Flash Chart庫。 該xml文件是使用xml.builder文件生成的,但是我不確定實際是否找到了生成的xml文件。

如果存在一個(name).xml.builder文件和一個(name).html.erb文件,這是否意味着在調用format.html和format.xml時都生成了一個html / xml文件? 另一個問題可能是什么?

相關代碼段如下:(input_by_month.html.erb)

<script type="text/javascript" language="javascript" src="/javascripts/AnyChart.js"></script> 
</head>
<body> 
    <h2>Input by Month</h2>
    <script type="text/javascript" language="javascript"> 
    //<![CDATA[
    var chart = new AnyChart('/AnyChart.swf'); 
    chart.setXMLFile('input_by_month.xml'); 
    chart.write(); 
    //]]> 
    </script> 
 </body> 

上面的javascript期望一個名為“ input_by_month.xml”的XML文件。 我認為該文件是通過“ input_by_month.xml.builder”構建的。 XML格式正確,不包含任何錯誤。

xml.anychart
  xml.settings do
  ....
  end
end 

html視圖是在控制器中生成的,其操作名為“ input_by_month”。

class ChartsController < ApplicationController
  def input_by_month
    @months = params[:months]
    @input_by_month = InputByMonth.find(:all, :conditions => "user_id = '#{current_user.id}' AND end_time between '#{@months.months.ago.to_date}' AND '#{Time.now.to_date}'")

    respond_to do |format|
      format.html
      format.xml
    end
  end
end

我犯的錯誤是由於route.rb沒有考慮.xml路徑。 由於input_by_month是一個自定義操作,因此我使用以下命令將其映射到route.rb:

map.connect "charts/input_by_month", :controller => 'charts', :action => 'input_by_month'

上面的行僅映射.html文件。 我需要的是還為.xml文件添加路由。 為此,我需要添加另一行:

map.connect "charts/input_by_month.:format", :controller => 'charts', :action => 'input_by_month'

添加這一行,允許我的.html視圖中的javascript查找由input_by_month操作生成的.xml文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM