Powiedzmy mam tablicę (otrzymane od strony klienta) identyfikatorów:Korzystanie gdzie z szynami przygotowanej składni oświadczenie
myArray = [1,5,19,27]
I chciałbym zwrócić wszystkie elementy, dla których (wtórny) id znajduje się na tej liście.
W SQL byłoby to:
SELECT * FROM Items WHERE id IN (1,5,19,27)
Zdaję sobie sprawę, że mogę zrobić:
Item.where(id: [1,5,9,27])
,
jednak już gdzie kwerendy, że to być dołączona na używa przygotowana składnia oświadczenia Item.where('myAttrib = ? AND myOtherAttrib <> ? AND myThirdAttrib = ?', myVal[0], myVa[1], myVal[2])
w związku z tym, co ja chciałoby się następująco:
Item.where('id IN ?', myArray)
jednak, że produkuje się błąd składni:
ActiveRecord::StatementInvalid: PG::Error: ERROR: syntax error at or near "1" LINE 1: SELECT "items".* FROM "items" WHERE (id in 1,2,3,4)
Jak można to obejść? Jaki jest właściwy sposób użycia, gdy z przygotowaną składnią instrukcji dla wyrażeń IN
.