How to make Rails 4.2 work with Postgres Jsonb?

2020-02-12 06:10发布

问题:

I've seen a few blog posts claiming that rails 4.2 added support for the new Jsonb data type in Postgres 4.2.

However, googling gets me zero results on how to actually use the datatype. Since I'm not depending on key order and I would like my application to be fast, I would very much like to use Jsonb instead of json in one of my models.

Was it actually added in 4.2, and, if so, how do you use it?

回答1:

It's part of the not yet released version of Rails 4.2 (currently 4.2.0.rc3). To use the datatype, specify the jsonb type when creating a table:

create_table :users do |t|
  t.jsonb :extra_info
end

or add to an existing table

add_column :users, :extra_info, :jsonb

Since jsonb is virtually the same as json except for the internal storage, the way you work with the column is the same as well.