如何在rails中使用jsonb
Posted
技术标签:
【中文标题】如何在rails中使用jsonb【英文标题】:how to use jsonb in rails 【发布时间】:2014-12-07 13:42:44 【问题描述】:我有一个使用 Postgresql 9.4 作为后端的 rails 项目。我有这样的专栏:
t.json :slot_details, null: false, default:
如何将其从 JSON 更改为 JSONB?我应该添加索引并将其更改为 JSONB 吗?
【问题讨论】:
【参考方案1】:要迁移它,您可以执行以下操作。在这种情况下,Payload 最初是一个 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
【讨论】:
这会删除数据吗? 这不会删除数据。它将 json 转换为 jsonb。【参考方案2】:这是它在 Rails 4.2 中的工作方式
t.jsonb :slot_details, index: true, default:
上面的答案给我带来了错误。
【讨论】:
你能发布你的错误吗?我上下运行了迁移以确认它对我有用。 @Robert 错误类似于无法将字符串转换为 json 或类似的东西。 我的迁移只适用于 json 到 jsonb。您的字段是字符串 - 不是 json? 这是一个 json 但没有工作所以我最终做了我所做的以上是关于如何在rails中使用jsonb的主要内容,如果未能解决你的问题,请参考以下文章