2015-03-10 20 views
31

voglio fareActiveRecord where field =? gamma di possibili valori

Model.where('id = ?', [array of values]) 

Come faccio a ottenere questo sguardo senza concatenamento OR insieme?

+0

Possibile duplicato di [Rails 3/Ruby: ActiveRecord Trova metodo IN condizione Array a Parametri problema di quotazione singola] (http: // stackoverflow. it/questions/6994095/rails-3-ruby-activerecord-find-method-in-condition-array-to-parameters-single) –

risposta

73

Da here sembra essere fatto utilizzando uno SQL in dichiarazione:

O più semplicemente, come kdeisz sottolineato (Utilizzo di Arel per creare la query SQL):

Model.where(id: [array of values]) 
+3

Questo può essere semplificato in 'Model.where (id: [matrice di valori])' – kddeisz

+0

Model.where ("id in (?)", [1..8]) non sembra funzionare per me. qualche idea? – BKSpurgeon

+0

Non hai bisogno delle parentesi quadre, '1..8' è già in forma di array. – javanut13

3

Per facilitare la lettura, questo può essere semplificata ulteriormente, a:

Model.find_by(id: [array of values]) 

Ciò equivale a utilizzare where, ma più esplicito:

Model.where(id: [array of values]) 
Problemi correlati