Postres hstore problem z kasowaniem kluczy

Witam
W jaki sposób kasować klucze wraz z wartościami z rekordu hstore ? Próbowałem hstore_field.delete(“space_id”) i mimo że kasuje z obiektu to zmiany nie zapisują się po użyciu save.
Przykładowy log

Project Load (1.0ms) SELECT "projects".* FROM "projects" ORDER BY "projects"."id" DESC LIMIT 1 => #<Project id: 41, created_at: "2013-08-26 15:04:09", updated_at: "2013-08-27 07:54:37", name: "Projekcik", context: {"space_id"=>"16"}> 1.9.3p194 :486 > p.context.delete("space_id") => "16" 1.9.3p194 :487 > p.save (0.2ms) BEGIN Project Exists (0.6ms) SELECT 1 AS one FROM "projects" WHERE (id != 41 AND name = 'Projekcik' AND context @> ('space_id' => '')) LIMIT 1 (0.4ms) COMMIT

p.context = {} p.save

p.context = p.context.except :space_id # metoda z ActiveSupport p.save

Czasem w context jest więcej niż jeden klucz, wiec nie moge użyć p.context = {}
Doszedłem już jak to nadpisać ale nadal nie rozumiem czemu aż tak musze kombinować.

Kod ten załączam do modeli za pomocą concerns

key = "space_id" new_context = send('context') new_context.delete(key) self.reload self.update_attributes context: new_context.symbolize_keys
Z jakiś powodów jeśli klucze były stringami to nie kasowało mi ich.

Jeśli nie korzystasz z activerecord-postgres-hstore, to moim zdaniem najprościej byłoby użyć albo p.context = p.context.except(:space_id); p.save, albo, w ramach rozrywki napisać samemu odpowiedzialną za to klasę, bazując np. na sqlu…

ActiveRecord::Base.connection.execute("UPDATE projects SET context = delete(context, 'space_id') WHERE id = 41")

Aplikacja stoi na railsach 4.0 czy w takim przypadku dalej ma sens używanie https://github.com/diogob/activerecord-postgres-hstore ?