1
Ich habe die folgenden tables
/models
in meinem Helpdesk-Modul.Rails Gruppe nach Fremdschlüssel mit benutzerdefinierten Regeln
status.rb
has_many :tickets
Status-Tabelle
id name
----------------------
1 New
2 Assigned
3 In progress
4 Finished
5 Closed
6 Cancelled
ticket.rb
belongs_to :status
Tickets Tisch
id status_id subject customer_id
----------------------------------------
1 1 Ticket 1 1
2 1 Ticket 2 1
3 2 Ticket 3 1
4 3 Ticket 4 1
5 4 Ticket 5 1
6 3 Ticket 6 1
7 1 Ticket 7 1
8 2 Ticket 8 1
Für Helpdesk-Team, ich brauche Tickets nach Status zählen zu zeigen.
Dies würde für sie arbeitet,
Ticket.all.joins(:status).group("statuses.name").count
=> {"New" => 3, "Assigned" => 2, "In progress" => 2, "Finished" => 1}
Das Problem ist jetzt, ich Assigned
und In progress
als einzelne Gruppe zeigen will, Active
, an den Kunden.
Das Ergebnis wie dieses
=> {"New" => 3, "Active" => 4, "Finished" => 1}
Wie kann aussehen soll ich dieses Ergebnis mit bekommen?
Ich schlage vor, es nicht in SQL zu tun, müssen nur eine Methode, die erste Hash endgültige Hash umwandelt. – MikDiet
'status_frequencies.except ('Zugewiesen', 'In Bearbeitung') Zusammenführen ('Aktiv' => Status_Frequenz ['Zugewiesen'] + Status_Frequenz ['In Bearbeitung'])' – ndn
Ich stimme @MikDiet zu. Das Hinzufügen dieser Logik in SQL wird es schwierig machen, unordentlich zu werden und für zukünftige Wartung anfällig zu sein. Es wird in Rubin-Methode eine einfache Lösung sein! –