查询 ActiveRecord 语法

Posted

技术标签:

【中文标题】查询 ActiveRecord 语法【英文标题】:Querying ActiveRecord Syntax 【发布时间】:2021-11-10 20:50:11 【问题描述】:

我正在处理一项任务,我必须定义一个将某些内容附加到数据库中的列的函数,但是我很新,尽管查看了 ActiveRecord 文档,但我似乎无法掌握我要查找的列。

例如,我有一个包含许多列的表,包括“状态”和“阶段”,我可以使用以下代码获取状态:

 CaseFileStatus.where(state: case_file.state).first

但是我现在无法以某种方式抓住“阶段”列,如下所示。

      CaseFileStatus.where(state: "case_file.phase")
      CaseFileStatus Load (2.5ms)  SELECT "case_file_statuses".* FROM "case_file_statuses" WHERE "case_file_statuses"."state" = $1  [["state", "case_file.phase"]]
      => []

我确定这是一个超级基本的错误,但我应该如何构造这个查询呢?

【问题讨论】:

"case_file.state" 是一个字符串,你需要一个变量,所以省略双引号 【参考方案1】:

如果您需要根据phase 列查询记录,您应该这样做:

CaseFileStatus.where(phase: case_file.phase)

【讨论】:

以上是关于查询 ActiveRecord 语法的主要内容,如果未能解决你的问题,请参考以下文章

Learn Rails5.2-- ActiveRecord, Query查询语法。

动态 Active Record 查询中的 Codeigniter 括号

CodeIgniter Active Record 查询 WITH/ 子查询

Active Record 包括 where

Rails 和 Active Record:复杂的 SQL 查询

如何在 Active Record 迁移中为字段添加索引以加快查询速度?