voglio fareActiveRecord where field =? gamma di possibili valori
Model.where('id = ?', [array of values])
Come faccio a ottenere questo sguardo senza concatenamento OR insieme?
voglio fareActiveRecord where field =? gamma di possibili valori
Model.where('id = ?', [array of values])
Come faccio a ottenere questo sguardo senza concatenamento OR insieme?
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])
Questo può essere semplificato in 'Model.where (id: [matrice di valori])' – kddeisz
Model.where ("id in (?)", [1..8]) non sembra funzionare per me. qualche idea? – BKSpurgeon
Non hai bisogno delle parentesi quadre, '1..8' è già in forma di array. – javanut13
Da il ActiveRecord Query Interface guide
Se si desidera trovare i record utilizzando l'IN expressio n è possibile passare un array a condizioni hash:
Client.where(orders_count: [1,3,5])
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])
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) –