"Wed, 16 Mar 2016 11:20:20 -0700", ....-6ren">
gpt4 book ai didi

ruby-on-rails - 使用 activerecord select 返回 jsonb 字段的元素

转载 作者:行者123 更新时间:2023-12-04 03:44:39 25 4
gpt4 key购买 nike

如何从 jsonb 存储字段中“选择”一个值?

例如

@model1:
data: {"special_date" => "Wed, 16 Mar 2016 11:20:20 -0700", ....}
@model2:
data: {"special_date" => "Wed, 23 Mar 2016 11:20:20 -0700", ....}

我想要类似的东西
Model.all.select("data -> 'special_date'")

最佳答案

如果你想要一个稀疏的 ActiveRecord 模型实例来保存数据(而不是数组中的基元),你只需使用 select :

model = Model.select("data -> 'special_date' as special_date'").first
model.id #=> nil
model.special_date = #=> "Wed, 23 Mar 2016 11:20:20 -0700"

如果您想从 jsonb 中获取整个记录以及特定的数据段列,您可以链接 select :
model = Model.select('*').select("data -> 'special_date' as special_date").first
model.id #=> 42
model.special_date #=> "Wed, 23 Mar 2016 11:20:20 -0700"

如果您根本不需要 ActiveRecord 实例,只需使用 pluck:
Model.pluck("data -> 'special_date' as special_date")

关于ruby-on-rails - 使用 activerecord select 返回 jsonb 字段的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41432882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com