我正在使用一个flash文件库,它以xml文件/字符串作为输入。 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
答案 0 :(得分: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文件。