Filterung auf activerecord-Bezug ohne zusätzliche sql-Abfrage?
Wie Filtere ich die Ergebnisse der AR-Abfrage, ohne die eine zusätzliche Abfrage?
z.B.
u = User.where(name: "bob", age: [10, 20])
# 1st select query to db
u.class # ActiveRecord::Relation
tens = u.where(age: 10)
# 2nd select query to db
Ich will nicht die zweite Abfrage aufrufen, um die db, sondern filtern der abgerufenen Ergebnisse in u (1. Abfrage).
InformationsquelleAutor der Frage Derek | 2013-10-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
ActiveRecord:Relation
nur Abfragen die db, wenn Ihre Elemente zugegriffen werden. Also der Sequenz, die Sie haben nicht nennen der db überhaupt, wenn Sie so etwas schreibenu.first
odertens.first
.Ist es ein bisschen anders in der Rails-Konsole wie jede Anweisung, die Ergebnisse sind gedruckt auf Konsole, so dass es führt die Abfrage jedes mal. Sie können überspringen Sie den Druck durch Anhängen
; 1
nach jeder Anweisung.Abgesehen davon, wenn Sie immer noch wollen, um die Ergebnisse zu filtern, die mit der ersten Abfrage:
InformationsquelleAutor der Antwort tihom