如何在rails中使用jsonb

时间:2014-12-07 13:42:44

标签: ruby-on-rails postgresql ruby-on-rails-4 postgresql-9.4

我有一个使用Postgresql 9.4作为后端的rails项目。我有这样的专栏:

t.json :slot_details, null: false, default: {}

如何从JSON将其更改为JSONB?我应该添加索引并将其更改为JSONB吗?

2 个答案:

答案 0 :(得分:7)

要进行迁移,您可以执行以下操作。在这种情况下,有效负载最初是一个json字段。

  class AlterJsonbToJsonAndBack < ActiveRecord::Migration                      
    def up                                                                     
      change_column :dynamics, :payload, 'jsonb USING CAST(payload AS jsonb)'  
    end                                                                        

    def down                                                                   
      change_column :dynamics, :payload, 'json USING CAST(payload AS json)'    
    end                                                                        
  end                                                                          

要了解如何在Rails 4.2中查询jsonb,请检查this article

答案 1 :(得分:3)

以下是它如何与Rails 4.2一起使用

t.jsonb :slot_details, index: true, default: {}

上面的答案给我带来了错误。