Hinzufügen von zwei ActiveRecord :: Relation-Objekten [duplizieren]

8

Wie fügst du zwei Relationen zusammen? Wenn ich den Operator + versuche, gibt es ein Array zurück. Aber ich brauche es, um eine Beziehung zurückzugeben.

danke, Mike

    
mikeglaz 06.09.2012, 04:34
quelle

3 Antworten

7

Versuchen Sie:

%Vor%     
xdazz 06.09.2012, 04:37
quelle
3

Sie können zwei ActiveRecord :: Relation mit Arel Constraints

hinzufügen %Vor%

Sie können auch oder operator

verwenden %Vor%

Wirkliches Beispiel

%Vor%

Sie können sich einen exzellenten Screencast über Ссылка

ansehen     
Joel AZEMAR 01.03.2014 18:59
quelle
2

Wenn Sie ActiveRecord :: Relation-Objekte hinzufügen, erhalten Sie ein "ODER" -Ergebnis statt "AND" (Sie würden das AND-Verhalten durch Verkettung erhalten), und Sie benötigen weiterhin das Ergebnis als ActiveRecord :: Relation schön mit einem anderen Code zu spielen (zB meta_search) ....

%Vor%

Sicherlich nicht die größte Leistung der Welt, aber sie führt zu einem ActiveRecord :: Relation-Objekt, das auf die ODER-Ergebnisse zeigt.

Sie können das "OR" auch direkt in sql einfügen, anstatt Rails darum zu bitten, es für Sie zu generieren, damit Ihre Datenbankanwendung besser arbeiten kann. Ein Beispiel:

Model.where ("table_name.col = 'one' ODER table_name.col = 'two'")

Dadurch wird auch ein ActiveRecord :: Relation-Objekt zurückgegeben.

    
Anatortoise House 25.05.2013 01:27
quelle

Tags und Links