How can I update a data record's value with Ruby on Rails 4.0.1/PostgreSQL Hstore? How can I update a data record's value with Ruby on Rails 4.0.1/PostgreSQL Hstore? ruby-on-rails ruby-on-rails

How can I update a data record's value with Ruby on Rails 4.0.1/PostgreSQL Hstore?


I still needed this to work now and couldn't wait for the bug to be solved, so here's my workaround:

c.data["balance"] = "100"c.data_will_change!c.save

... and it will save to the DB!

The "attribute_name_will_change!" method isn't that well documented and can be found in the introduction to the Active Model Dirty module: http://api.rubyonrails.org/classes/ActiveModel/Dirty.html


Ok finally found an answer to my question. Turns out that it's a bug within Rails 4.0.

"ActiveRecord Hstore bug: can't update a key in the hash"https://github.com/rails/rails/issues/6127


Upgraded Hstore docs:

http://edgeguides.rubyonrails.org/active_record_postgresql.html#hstore

They're working to use the same solution for Hstore and Json object updating.

This will be fixed on Rails 4.2.

Pull-request: https://github.com/rails/rails/pull/15674