Gibt es eine Möglichkeit, Scopes additiv zu kombinieren?
Wenn ich die Bereiche habe
%Vor%und
%Vor%Ich kann
anrufen %Vor%und hol dir alle User, die große Haare haben UND Gitarre spielen. Kann ich dies schreiben, um alle Benutzer, die große Haare haben oder Gitarre spielen zu bekommen?
Ich muss hinzufügen, dass ich weiß, dass Sie eine Reihe von Abfragen ausführen und die Ergebnisse zusammenfügen können. Das versuche ich nicht zu tun.
Versuchen Sie Searchlogic, es vor kurzem unterstützt kombinieren namens Bereiche mit OR
Ich habe das gerade an einigen meiner Modelle ausprobiert, die named_scopes definiert haben. Es wird die Bedingungen als UND-Bedingung zusammenbringen, wenn Sie es kombinieren. Also ...
%Vor%wird dazu führen (offensichtlich meine Kurzschrift SQL, nicht die echten Rails generiert)
%Vor%Ich kenne keine Möglichkeit, sie als OR-Beziehung zu kombinieren. Das wäre unglaublich komplex, wenn man über die verschiedenen Optionen nachdenkt. Wir chained named_scopes die ganze Zeit, es funktioniert gut (solange Sie sie ANDed ANDed wollen).
Um dies zu tun, würde ich entweder einen speziellen benannten Bereich mit den OR-Bedingungen erstellen oder eine Union verwenden, um einen eindeutigen Satz wie folgt zu erzeugen:
%Vor%Tags und Links ruby-on-rails activerecord named-scope