Ruby on rails 创建图形-JSON/XML比在JS语句中插入Rails变量更具优势?
Rails 2.35/Ruby 1.87 我一直在努力 对于Fusion图表,我总是使用构建器文件为视图呈现XML。使用jqPlot,如果我可以简单地构建一个数据字符串并将其插入到生成图形的JavaScript中,那么是否有理由呈现JSON文件等 此外,我找不到任何jqPlot Rails示例,只是编了一些东西。我很好奇我所做的是如何写得更好,或者我在这里做得是否还不错 谢谢Ruby on rails 创建图形-JSON/XML比在JS语句中插入Rails变量更具优势?,ruby-on-rails,Ruby On Rails,Rails 2.35/Ruby 1.87 我一直在努力 对于Fusion图表,我总是使用构建器文件为视图呈现XML。使用jqPlot,如果我可以简单地构建一个数据字符串并将其插入到生成图形的JavaScript中,那么是否有理由呈现JSON文件等 此外,我找不到任何jqPlot Rails示例,只是编了一些东西。我很好奇我所做的是如何写得更好,或者我在这里做得是否还不错 谢谢 CONTROLLER --------------------- def provisioned_accoun
CONTROLLER
---------------------
def provisioned_accounts
sql = %Q{
SELECT day_of, provisioned_accounts from daily_provisioned_accounts_rollup
}
graph_data = DailyProvisionedAccountsRollup.find_by_sql(sql)
@graph_data = ''
x = 0
graph_data.each do |g|
x += 1
if x == 1
@graph_data += "['" + g.day_of.to_s + "', " + g.provisioned_accounts.to_s + "]"
else
@graph_data += ", ['" + g.day_of.to_s + "', " + g.provisioned_accounts.to_s + "]"
end
end
end
VIEW
---------
<div id="chart1" style="height:300px; width:800px;"></div>
<script type="text/javascript">
$(document).ready(function(){
var line1=[<%= @graph_data %>];
var plot1 = $.jqplot('chart1', [line1], {
title:'Provisioned Accounts',
axes:{
xaxis:{
renderer:$.jqplot.DateAxisRenderer,
tickOptions:{
formatString:'%b %#d'
}
},
yaxis:{
tickOptions:{
formatString:'%.0f'
}
}
}
});
});
</script>
这里有几件事我会做得不同 将find_by_sql移动到DailyProvisioniedAccountsRollup上的一个方法中,该方法称为:
class DailyProvisionedAccountsRollup < ActiveRecord::Base
...
def self.summary
all.map do |record|
[ record.day_of, record.provisioned_accounts ]
end
end
end
最后,在您看来,您只需使用@graph_data.to_json即可
这些都是未经测试的代码,但应该可以让您开始清理控制器
def provisioned_accounts
@graph_data = DailyProvisionedAccountsRollup.summary
end
<div id="chart1" style="height:300px; width:800px;"></div>
<script type="text/javascript">
$(document).ready(function(){
var line1=<%= @graph_data.to_json %>
var plot1 = $.jqplot('chart1', [line1], {
title:'Provisioned Accounts',
...