2010-07-20 76 views
0

我正在使用以xml文件/字符串作爲輸入的閃存圖表庫。 xml文件是使用xml.builder文件生成的,但我不確定實際上是否找到生成的xml文件。爲圖表庫準備XML數據

如果有一個(名稱).xml.builder文件和一個(名稱).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 

回答

0

我在做的錯誤是由於routes.rb沒有考慮到.xml路徑。由於input_by_month是一個自定義操作,我映射用它來的routes.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文件。