我一直在努力解决这个问题,搜索等等,现在我准备寻求帮助。
我有一个控制器"DashboardController",还有一个单一视图"dashboard.html.erb".
dashboard.html.erb页面有三个组件;一些javascript,它使用模型数据创建图表,一个div来保存图表,以及一个表单来选择图表选项。
这一切都有效。当我提交表单时,我可以让表单将参数正确地放入查询字符串中,但包含图表目标的div在提交时不会更新。
基本上,想要有一个表单驱动的图表,是无法实现的。令人沮丧。
我是Rails的新手,我对控制器、路由和操作的了解仍在不断发展。
在我的代码中,由于Rails的form_tag方面存在困难,我在这里切换到了一个简单的表单。还是什么都没有。
如有任何帮助,我们将不胜感激。
<script type="text/javascript">
$(function() {
new Highcharts.Chart({
chart: {
renderTo: "orders_chart",
type: "column"
},
title: {
text: "Sales Billings - <%= params[:sale_year] %>"
},
xAxis: {
categories: [1,2,3,4]
},
yAxis: {
text: "Billings"
},
tooltip: {
formatter: function() {
return 'Q-' + this.x + ': ' +
"$" + Highcharts.numberFormat(this.y,2);
}
},
series: [{
name: "Business Unit A",
data: <%= Sale.where(:year => params[:id], :segment => 'IT Infrastructure').each.map { |row| row.billings.to_f }.inspect %>
},{
name: "Business Unit B",
data: <%= Sale.where(:year => params[:id], :segment => 'Collaboration').each.map { |row| row.billings.to_f }.inspect %>
},{
name: "Business Unit C",
data: <%= Sale.where(:year => params[:id], :segment => 'MSP').each.map { |row| row.billings.to_f }.inspect %>
}]
});
});
<div id="orders_chart" style="width:560px; height:380px;"></div>
<form accept-charset="UTF-8" action="/dashboard" method="">
<select id="sale[:year]" name="sale_year" data-mini="true" data-corners="false">
<option>Year</option>
<% @salesyear = Sale.select(:year).uniq
@salesyear.each do |years| %>
<option value="<%=years.year %>"><%=years.year %></option>
<% end %>
</select>
<select id="sale[:quarter]" name="sale_quarter" data-mini="true" data-corners="false">
<option>Quarter</option>
<% @salesqtr = Sale.select(:quarter).uniq
@salesqtr.each do |qtr| %>
<option value="<%=qtr.quarter %>">Q<%=qtr.quarter %></option>
<% end %>
</select>
<select id="sale[:month]" name="sale_month" data-mini="true" data-corners="false">
<option>Month</option>
<% @salesm = Sale.select(:month).uniq
@salesm.each do |month| %>
<option value="<%=month.month %>">Month - <%=month.month %></option>
<% end %>
</select>
<input name="commit" type="submit" value="Update" class="ui-btn-hidden" aria-disabled="false" data-theme="c" data-mini="true" data-icon="search" data-iconpos="right" data-corners="false">
</form>
如果看不到routes.rb文件或DashboardsController
,就很难推断出发生了什么。
我可以说,你的表单标签需要用预期的方法(可能是"post"或"put"(提交给正确的操作。你已经指定了"/dashboard"操作,但没有方法:
<form accept-charset="UTF-8" action="/dashboard" method="">
我猜"/dashboard"映射到routes.rb文件中的"get"请求,比如:
match "/dashboard", to: "dashboards#dashboard"
一个非典型的(但可能很快(改变是允许"获取"one_answers"发布"请求:
match "/dashboard", to: "dashboards#dashboard", via: [:get, :post]
您还需要确保控制器操作已设置为处理post请求发送的params。