Factory dla pola postgress hstore

Używam w tabeli postgress hstore, w modulu mam:

store_accessor :acl, :custom_user_ids

Zapisana przykładowa kolumna wygląda tak:

acl: {"access"=>"custom", "custom_user_ids"=>"[\"1\"]"}

Zakładam że postgress zawsze bedzie zapisywał w ten sposób tablice jako string ?

Jak sprawić żeby używając takiego kodu:

let!(:note3){ create :note, access: 'custom', custom_user_ids: [user1.id, user2.id] }

Tworzyło by mi obiekt z poprawnie zserializowanymi custom_user_ids. W tym momencie owszem obiekt jest tworzony, ale pole te są jako zwykły hash a nie json tak jak to robi postgress.
Natomiast w kodzie aplkacji wykonuje zapytania na tych polach, np.

scope :accessible_by_user, lambda {|user| where( acl @> ('access' => 'public') OR (acl @> ('access' => 'custom') AND (acl->'custom_user_ids') LIKE '%\":custom_user_id\"%') ", custom_user_id: user.id)}
(refaktoryzacja tego ostatniego zapytania, zeby nie uzywac LIKE to kolejne pytanie :slight_smile: , zna ktoś jakis dobry tutorial do takich postgressowych zapytań ? )