Diciamo che ho una matrice (ricevuto dal lato client) di ID:Utilizzando DOVE IN con Rails sintassi dell'istruzione preparata
myArray = [1,5,19,27]
E Vorrei restituire tutti gli articoli per i quali il (secondario) id è in quella lista.
In SQL questo sarebbe:
SELECT * FROM Items WHERE id IN (1,5,19,27)
Sono consapevole che avrei potuto fare:
Item.where(id: [1,5,9,27])
,
tuttavia la più dove query che questo sarebbe stato appiccicato sul usa la sintassi di istruzione preparata Item.where('myAttrib = ? AND myOtherAttrib <> ? AND myThirdAttrib = ?', myVal[0], myVa[1], myVal[2])
tenendo conto di ciò che ho vorrei è il seguente:
Item.where('id IN ?', myArray)
tuttavia, che produce un errore di sintassi:
ActiveRecord::StatementInvalid: PG::Error: ERROR: syntax error at or near "1" LINE 1: SELECT "items".* FROM "items" WHERE (id in 1,2,3,4)
Come posso ovviare a questo? Qual è il modo corretto per utilizzare dove con la sintassi di istruzione preparata per le espressioni IN
.