【发布时间】:2017-09-06 18:10:58
【问题描述】:
我正在尝试显示两个日期之间的某些统计数据(两个下拉菜单)。
我的控制器有以下方法:
def data_stats
data_between_two_dates = Data.where(:created_at => params[:created_at1]..params[:created_at2])
@data_count = data_between_two_dates.count
@gold_data_count = data_between_two_dates.joins(:status).where(status: DataStatus.find(8)).count
puts(@data_count)
puts(@gold_data_count)
我希望能够在我的视图中显示以下变量:data_count 和 gold_data_count,就在从我从数据库中填充的下拉列表中选择两个日期之后。
观点如下(/views/data_stats/data_stats.html.erb):
<select class="my-date" id="created_at1">
<option value="" selected>-- Select Date --</option>
<% datadate = Data.order(created_at: :desc).all %>
<% datadate.each do |data| %>
<%= content_tag(:option, data.created_at, value: data.created_at) %>
<% end %>
</select>
<select class="my-date" id="created_at2">
<option value="" selected>-- Select Date --</option>
<% datadate = Data.order(created_at: :desc).all %>
<% datadate.each do |data| %>
<%= content_tag(:option, data.created_at, value: data.created_at) %>
<% end %>
</select>
<div id="data_stats">
<label class="col-sm-2 control-label">Data count</label>
<span id="data_count"><%= @data_count %></span>
<label class="col-sm-2 control-label">Gold Data count</label>
<span id="gold_data_count"><%= @gold_data_count %></span>
</div>
在同一个视图中,在底部我有 Ajax 查询:
<script type="text/javascript">
$(document).ready(function() {
$('.my-date').on('change', function() {
var data = {}
$('.my-date').each(function() {
if($(this).val()) {
data[$(this).attr("id")] = $(this).val();
}
});
console.log(data);
// After selecting the two dates
//the above print of `data` gives me this:
//`Object { created_at1: "2016-12-08 16:42:51 UTC", created_at2: "2017-05-23 06:11:02 UTC" }`
if(Object.keys(data).length > 1) {
$.ajax({
type: "GET",
url: "<%= admin_data_stats_path%>",
data: Object.keys(data),
success: function (data) {
console.log("<%= @data_count %>");
console.log("<%= @gold_data_count %>");
//Here when I just print the variables the count is always 0
}
});
}
});
});
</script>
奇怪的是,当我在选择日期后检查我的终端时,我可以清楚地看到我在控制器中所做的 puts 的结果(我得到了数据和黄金数据的计数).. 但我不能似乎想出了如何在视图中显示它们。
我错过了什么?
提前感谢您的帮助!
【问题讨论】:
标签: javascript jquery ruby-on-rails ajax