Ich suche mehrere Arrays, aber Probleme mit der Ausrichtung in einer Tabelle basierend auf Jahr. In dem Moment, in dem die Daten nicht mit dem entsprechenden Jahr übereinstimmen, wenn Daten in irgendeinem Jahr existieren, werden nur die Daten in der ersten Zeile platziert, dann werden "0" -Daten für den Rest, d. nicht mit dem Jahr übereinstimmen.Looping Multiple Arrays von Jahr
Ansicht
<table>
<% @a.zip(@b, @c, @d) do |a, b, c, d| %>
<tr>
<td><%= a.year %></td>
<% if a.blank? %>
<td>0</td>
<td>0</td>
<% else %>
<td><%= a.id %></td>
<td><%= a.data %></td>
<% end %>
<% if b.blank? %>
<td>0</td>
<td>0</td>
<% else %>
<td><%= b.id %></td>
<td><%= b.data %></td>
<% end %>
<% if c.blank? %>
<td>0</td>
<td>0</td>
<% else %>
<td><%= c.id %></td>
<td><%= c.data %></td>
<% end %>
<% if d.blank? %>
<td>0</td>
<td>0</td>
<% else %>
<td><%= d.id %></td>
<td><%= d.data %></td>
<% end %>
</tr>
</table>
-Controller
@a = Result.where(id: params[:id_select]).group('year').where('data > 0').select('AVG(data) AS data, year as year, COUNT(id) AS id').order('year ASC')
@b = Result.where(id: params[:id_select]).group('year').where('data > 0').select('AVG(data) AS data, year as year, COUNT(id) AS id').where('id = ?', '0').order('year ASC')
@c = Result.where(id: params[:id_select]).group('year').where('data > 0').select('AVG(data) AS data, year as year, COUNT(id) AS id').where('id = ?', '1').order('year ASC')
@d = Result.where(id: params[:id_select]).group('year').where('data > 0').select('AVG(data) AS data, year as year, COUNT(id) AS id').where('id = ?', '2').order('year ASC')
Bitte Datenformat in der Tabelle und Ausgabeformat erwähnen Sie wollen. – seahawk
Ich habe einige Probleme bekommen, was die Frage will, können Sie schreiben Sie die Daten, die Sie explizit haben ** nicht die Abfragen ** und das Format, das Sie im Text wollen. –
@DollarChills, Ich habe eine Lösung für Ihr Problem unten vorgeschlagen. Ich hoffe, ich verstehe es richtig. Lassen Sie es mich wissen, wenn es Ihren Bedürfnissen entspricht. – dimakura