2014-06-19 2 views
1

레일 4.1과 함께 Postgres 9.3을 사용하고 있습니다.레일 4.1을 사용하여 hstore 필드에서 단일 속성을 선택하십시오.

properties hstore 열이있는 테이블이 있다고 가정합니다.

는 이제 하나의 범위에서 hstore 열 내 키 선택합니다 (다른 곳에서 또는 ..)

내가 뭘하려 : Model.select("properties -> 'category'")

는 무엇 일 : 레일이 나에게이 같은 배열을 제공합니다 :

[#<Model id: nil>, 
#<Model id: nil>, 
#<Model id: nil>, 
#<Model id: nil>] 

내가 원하는 것은 :

[#<Model id: nil, category: 'foo'>, 
#<Model id: nil, category: 'bar'>, 
#<Model id: nil, category: 'baz'>, 
#<Model id: nil, category: 'foo'>] 
+0

'Model.where ("properties? –

+0

이것은 내가하고 싶은 일을 성취하지 못합니다 .. – ubergesundheit

답변

0

시도 :

=> Model.where("properties @> hstore(?, ?)", 'key', 'value').select(:category) 
=> [#<Model id: nil, category: 'foo'>] 
+1

질문에 대답 할 수 있지만, 코드가하는 일에 대한 설명과 이것이 OP를위한 가장 좋은 해결책 인 이유에 대한 설명이 크게 향상 될 것입니다 이 대답은 미래의 방문자를 돕습니다. – MattDMo