2012-04-16 10 views
49

Ich fragte mich, ob jemand wusste, wie man eine "IN" -Klausel in ActiveRecord tun. Leider ist die "IN" -Klausel so ziemlich nicht googlefähig, also muss ich hier posten. Im Grunde möchte ich eine Frage wie diese beantworten "Gib mir alle College-Studenten, die in diesen Schlafsälen sind, wo die Wohnheim-ID in diesem Array [ID-Array] ist". Ich weiß, wie man die Frage schreibt, die eine einzelne Schlafsaalidentifikation gegeben wird, aber ich weiß nicht, wie man es tut, gegeben eine Reihe von IDs.Ruby Active Record IN-Klausel

Jede Hilfe wird sehr geschätzt. Ich bin mir sicher, dass es sich um eine erneute Anfrage einer Frage handelt, also werde ich diese löschen, sobald ein besserer Suchbegriff gefunden wurde.

Antwort

105

Von §2.3.3 Subset Conditions of the Rails Guides:

Wenn Sie Datensätze zu finden, die IN Ausdruck verwenden, können Sie eine Array an den Bedingungen Hash-Pass:

Client.where(:orders_count => [1,3,5]) 

Dieser SQL-Code wie folgt generieren:

SELECT * FROM clients WHERE (clients.orders_count IN (1,3,5)) 
+0

kann es nicht wert sein Probleme mit leeren Arrays. – tokland