- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 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/
目前我正在开发一个 gem,它会覆盖 ActiveRecords where。通过研究,我偶然发现了两种不同的 find_by 实现。一个在 core它使用某种缓存,而来自 FinderMethods
我在 Rails 应用程序中设置了一个命名范围,用于通过 ID(直接来自索引 View )或 UUID(来自电子邮件 - 基本上只是这样用户无法输入)来定位记录任意ID并查看记录) scope :by
我正在使用 ahoy gem 进行分析。在 ahoy_events 表中,我有 json 数据类型的 properties 列。我想根据该列查找特定数据。 假设我有 {"tag":"a","class
我需要从 2 个参数中找到一条记录,但我需要其中一个不区分大小写。当前区分大小写的行是 c = Course.find_by(subject_area: area, cat_number: cat
这些天我正在研究 Ruby on Rails 以提高自己作为开发人员的水平,因此我开始重写我的一个 php 网站以使用该框架。 该网站基本上是一个源代码聚合器,因此我有一个语言模型和一个源模型: cl
假设@news_writers 是一个记录数组。然后我想使用@news_writers 查找由@news_writers 中包含的所有新闻作者撰写的所有新闻项目。 所以我想要这样的东西(但这在语法上是
我有一个奇怪的问题。 我有两个模型用户和角色,它们之间存在多对多关系。我想在用户的角色集合中过滤名称为“管理员”的角色。 在模型中这段代码 puts self.roles.to_s 打印到屏幕: [角
我有获取两个查找结果的代码: results1 = firstModel.find_by_id(id1) results2 = secondModel.find_by_id(id2) allResul
我想找到一个 Post 模型,其 title 是“foo”,但是,如果该帖子不存在,则为“bar”,然后是“foobar”。 为此我写了这个: Post.find_by(title: %w(foo b
MongoID docs似乎很清楚我应该能够运行它并让它工作: Band.find_by(name: "Photek") 但至少对于 MongoID 2.4.11,这给了我一个 NoMethodErr
我正在学习 6.3 版的 Michael Hartel 的 Rails 教程,需要 user_spec 模型的替代代码。他的代码是: let(:found_user) { User.find_by(e
它可能与问题无关,但对于上下文,我在我的应用程序中使用了 devise_invitable gem。我已经开始修改invitations_controller.rb,因为我想保存invited_use
我有一个用户模型,其中包含身份验证方法。 如果我在 Rails 控制台中使用模型进行测试,可以很好地创建用户,然后我可以在电子邮件中进行查找并像这样完美地返回用户。 user = User.find_
我是 Rails 新手。据我所知,查找记录的方法有很多种: find_by_() find(:first, :conditions => { => } where( => ).first 看起来它
假设我有模型(帐户),其中包含以下列 account_id、user_id、party_id、日期和名称 然后我执行: Account.find_by_account_id_and_user_id_a
假设我有模型(帐户),其中包含以下列 account_id、user_id、party_id、日期和名称 然后我执行: Account.find_by_account_id_and_user_id_a
ActiveRecord 的 find_by 方法似乎没有注意到自定义 getter。也就是说,find_by 似乎查看的是实际存储在数据库中的值,而不是 getter 返回的内容。示例: Activ
是否可以对 2 个以上的字段使用 find_by? 喜欢: feedback = Feedback.find_by_field_a_and_field_b_and_field_c("A", "B",
异常处理不适用于 rails 中的 find_by 查询 这里的代码: ab = User.find_by_uniq_token(params[:uniq_token]) 不引发异常...同时:
所以我知道 Rails 在像这样使用时有助于防止 sql 注入(inject): Object.find(:first, :conditions=>["name=?",name]) 但是,我似乎无法确
我是一名优秀的程序员,十分优秀!