gpt4 book ai didi

ruby-on-rails - json 数据中的 find_by()

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

我正在使用 ahoy gem 进行分析。在 ahoy_events 表中,我有 json 数据类型的 properties 列。我想根据该列查找特定数据。

假设我有

{"tag":"a","class":"bigyapan-6","page":"/client/dashboard","text":"","href":"http://www.google.com"}

这是数据,我想按类查找。

rails c 中,我运行了 Ahoy::Event.find_by(properties[:class]: "bigyapan-6") 它给了我一个错误

Ahoy::Event.find_by(properties["class"]: "bigyapan-6")
SyntaxError: unexpected ')', expecting end-of-input

最佳答案

这是一个语法错误,因为 properties[:class] 在 Ruby 中不是有效的散列键。要查询 Postgres JSON 列,您需要以字符串形式提供查询:

Ahoy::Event.find_by("properties ->> 'class' = 'bigyapan-6'")

在这种情况下,ActiveRecord 不像关联那样采用嵌套散列。我怀疑 ActiveRecord 是否会支持这一点,因为它非常特定于 RBDMS 并且类型强制(-> vs ->>)会使它变得非常复杂。

# this won't work.
Ahoy::Event.find_by(properties: { class: 'bigyapan-6' })

参见:

关于ruby-on-rails - json 数据中的 find_by(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34913648/

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