Ich habe sagen Modell Daten es drei Attribute hat 1) Datum 2) Entity 3) Wert ich die Daten für die 3 verschiedene Daten holeSuchen Sie den Wert des zweiten Feldes nach erster Array
Date1-Any user selected date
Date2-Same date a year earlier
Date3-Same date three years earlier
Ich bin Versuchen Sie, eine Tabelle nach dem höchsten Wert für das erste Datum zu erstellen, dh wir sortieren die Werte für das erste Datum und zeigen dann die Entität entsprechend diesem Wert an.
Tabelle Beispiel
**Entity** **date1 value** **date2 value** **date3 value**
in der zweiten Spalte werden wir die Einheit der ersten Spalte und die den Wert dieser Einheit für die zweiten Daten finden lassen.
Mein Problem ist, ich habe 80 Einheiten und ich muss eine Schleife für jede Spalte ausführen.so dauert es eine lange Zeit zu laden.
Kann mir jemand helfen, dieses Ding ohne so viele Schleifen leicht zu erreichen.
Controller:
@field_1 = Data.where(:date=> @date.to_date).sort_by{|i| -i[:value].to_f}
@[email protected]_1.pluck('entity')
@field_2 = @entity_1.map{|i| Data.where(:entity=>i,:date=> @date_2.to_date)}
@field_3 = @entity_1.map{|i| Data.where(:entity=>i,:date=> @date_3.to_date)}
@field_4 = @entity_1.map{|i| Data.where(:entity=>i,:date=> @date_4.to_date)}
Ansicht
<%@entity_data.each.with_index do |entity_data,index|%>
<td><%=entity_data.entity%></td>
<td><%=entity_data.value%></td>
<td><%[email protected]_2[index].first.value%></td>
....so on
<%end%>
Können Sie Ihren Code posten? Was du bis jetzt gemacht hast? –