, wie die Abfrage in Schienen 3 aktiven Datensatz zu ketten

7

Ich muss abhängig von Parametern Daten hinzufügen.

%Vor%

Aber es funktioniert aus irgendeinem Grund nicht. Danke

    
Tamik Soziev 02.04.2012, 02:40
quelle

6 Antworten

23

Jede Ihrer Anweisungen ersetzt die Variable @users , und wenn ActiveRecord jede träge auswertet, werden die ersten beiden nie aufgerufen.

Wenn Sie drei separate Abfragen verwalten und Dinge auf diese Weise aufbauen möchten, können Sie Folgendes tun:

%Vor%

Es ist nicht das schönste, aber es wird funktionieren. Ich empfehle jedoch, es auf einen einzelnen Methodenaufruf zu beschränken und es im Modell zu definieren.

%Vor%

Auf diese Weise können Sie die Methode erneut verwenden, verfeinern und Geschwindigkeitstests (ier) darauf schreiben.

    
Parker Selbert 02.04.2012, 02:47
quelle
7

Sie könnten Ihrem Modell Bereiche hinzufügen, die nichts tun, wenn der Parameter z. (Der Zielaufruf gibt nur den aktuellen Bereich zurück)

%Vor%     
opsb 09.11.2012 19:25
quelle
3

Sie können dies einfach tun, indem Sie:

%Vor%

Außerdem könnten Sie das oben genannte immer in einen Bereich abstrahieren.

    
rhetonik 02.04.2012 06:07
quelle
2

Dies ist ein perfekter Fall für Bereiche. Schauen Sie sich dieses Asciicast für ein ausführlicheres Tutorial an: Ссылка

Wenn Sie Bereiche verwenden, können Sie die where-Klauseln als separate Elemente beibehalten, die Sie einzeln wiederverwenden können. Sie können sie aber auch wie die where-Klauseln verketten.

    
Ben Miller 02.04.2012 02:47
quelle
0

Sie können dies über etwas wie ...

tun %Vor%     
Norto23 02.04.2012 02:43
quelle
0

Tatsächlich ist es besser, wenn Sie Bereiche erstellen, zum Beispiel Dies ist ein ausgezeichneter Artikel, der das erklärt

in Ihrem Modell

%Vor%

und in Ihrer Methode können Sie auf diese Weise aufrufen

%Vor%     
Ezequiel García 14.04.2016 14:57
quelle