2016-03-09 7 views

Odpowiedz

6

Według documentation, coś jak to powinno działać:

Item.where('something @> ARRAY[?]::varchar[]', ['3']) 
+0

Zgodnie z dokumentem istnieje krótsza metoda użycia, gdy szukamy tylko jednego elementu. 'Item.where (" '3' = DOWOLNE (coś) ")' Jestem dość podszyta tam nie ma prostszej metody activerecord, aby to zrobić! –

+0

@ MaxChrétien: Czy mogę (lub ty) uwzględnić Twój komentarz w odpowiedzi? Myślę, że można to uznać za całkiem przydatne. – potashin

+0

Komentarz odrzucony. _ Ta edycja miała na celu zajęcie się autorem posta i nie ma sensu jako zmiana. Powinien zostać napisany jako komentarz lub odpowiedź. –

2

Oprócz @potashin odpowiedź, jest krótsza droga do zrobienia (patrz documentation) jeśli trzeba, aby elementy na jeden elementu .

# Items for a single something 
    Item.where("'3' = ANY (something)") 
    # Or using '?' 
    Item.where('? = ANY (something)', '3') 

# Items for multiple something 
    Item.where('something @> ARRAY[?]::varchar[]', ['3', '4'])