我正在尝试显示一个表(来自我的数据库的数据),它计算该日期数据的出现次数。
我希望按日期对数据进行分组,然后循环遍历每个日期并运行查询。问题在于我刚刚得到的服务器日志是我的查询的无限循环。
CACHE (0.0ms) SELECT COUNT(*) FROM `data` WHERE (NOT (name = ''))
CACHE (0.0ms) SELECT COUNT(*) FROM `data` WHERE (NOT (age = ''))
CACHE (0.0ms) SELECT COUNT(*) FROM `data` WHERE (NOT (address = ''))
控制器:
def sum
date = Data.all
@sub_date = date.group_by(&:Submit_Date).map
end
型号:
def name_null
Data.where.not("name = ?", '').count
end
def age_null
Data.where.not("age = ?",'').count
end
def address_null
Data.where.not("address = ?", '').count
end
查看:
<tr>
<% @sub_date.each do |l, date|%>
<td><%=l%></td>
<% date.each do |ds| %>
<td><%= ds.name_null%></td>
<td><%= ds.age_null%></td>
<td><%= ds.address_null%></td>
<% end %>
<% end %>
</tr>
请告诉我哪里弄错了,目前正在研究rails。 :)
答案 0 :(得分:0)
尝试以下代码:
def sum
date = Data.all
@sub_date = date.group_by(&:submit_date)
end
def name_null
Data.where.not("name = ?", nil).count
end
def age_null
Data.where.not("age = ?",nil).count
end
def address_null
Data.where.not("address = ?", nil).count
end
<% @sub_date.each do |l, date|%>
<tr>
<td><%=l%></td>
<% date.each do |ds| %>
<td><%= ds.name_null%></td>
<td><%= ds.age_null%></td>
<td><%= ds.address_null%></td>
<% end %>
</tr>
<% end %>