Verwenden Sie die Postgres-Funktion als ActiveRecord-Modell

8

Ich habe eine Postgres-Funktion erstellt, die ich verwende, um eine komplexe Abfrage durchzuführen, die viele Tabellen verbindet, die alle durch ein dynamisches Datumsfeld gefiltert werden müssen.

Die Funktion funktioniert perfekt und erlaubt mir eine Abfrage wie "SELECT * FROM trail_for_date('2014-01-01')" und gibt eine Tabelle zurück.

Ein vereinfachtes Beispiel aus der Postgres-Dokumentation zu Funktionen:

%Vor%

Wie kann ich diese Rückgabetabelle als ein Rails / Ruby-Modell verwenden, in dem das Argument für die Funktion dynamisch ist?

Etwas wie das Folgende (was offensichtlich nicht funktioniert):

%Vor%     
Helios de Guerra 10.03.2014, 17:32
quelle

2 Antworten

1

Erstellen Sie eine Ansicht, die die benötigten Daten enthält, und Sie können dann auf einfache Weise ein ActiveRecord-Modell erstellen, um darauf zuzugreifen.

Sie haben keine spezifischen Details Ihrer Daten angegeben, aber als einfaches Beispiel erstellen Sie Ihre Ansicht in Postgres, um Ihre Daten zu sammeln;

%Vor%

Dann erstellen Sie Ihr Modell

%Vor%

Weitere Informationen finden Sie im Enterprise Rails-Buch. Es wird jetzt ein wenig veraltet, aber die Prinzipien sind solide.

Ссылка

    
Andy Henson 15.03.2014 00:53
quelle
0

Erstellen Sie eine Dummy-Tabelle mit den gleichen Spalten wie Ihre Funktionsausgabe:

%Vor%

Erstellen Sie Ihr Modell:

%Vor%

Verweisen Sie es in Ihrem Controller und füllen Sie es mit den Ergebnissen der Funktionsaufrufe:

%Vor%     
Caullyn 26.08.2015 16:47
quelle