2016-02-23 105 views
0

我使用滑軌(4.2)和Postgres的JSON數據類型來存儲陣列:滑軌:查詢的Postgres爲JSON陣列

#<Mapping:0x007fa3b6263390 foo: ["bar", baz]> 

現在我想查詢與特定的陣列中的所有映射:

Mapping.where(foo: ["bar", "baz"]) 

原來這不行。我可以使用什麼查詢來查找我想要的內容?所有JSON查詢示例通常用於散列,而不是用於數組(至少不在頂層)。

+0

支持postgres中的數組數據類型。 http://edgeguides.rubyonrails.org/active_record_postgresql.html –

回答

0

ActiveRecord爲Postgres數組內置了support

# equality 
Book.where("tags = ARRAY[?]::varchar[]", ["fantasy", "fiction"]) 

# inclusion 
Book.where("tags @> ARRAY[?]::varchar[]", ["fantasy", "fiction"]) 

有相當多的陣列功能可用,檢查出來here