sql - Ruby on Rails | Postgres:如何查找具有状态的记录(根据 has_many 约束计算)。请检查说明
问题描述
我有一个学校列表页面,我必须在其中列出学校的名称和状态。状态是根据学生的状态计算的。
这是我的模型...
class School < ActiveRecord::Base
has_many :students
has_many :teachers
end
class Student < ActiveRecord::Base
belongs_to :school
enum status: {
active: 'active',
suspended: 'suspended'
}
end
所以,这个想法是将学校名称和学校状态列为
- 学校状态是
active
指至少一名学生在该active
州。 - 学校状态是
suspended
指没有活跃学生但存在学生记录的情况。 - 学校状态是
closed
没有学生反对学校的记录。
我正在努力找到查询以获取我想要的数据。由于这是一个has_many
我发现它对我来说很困难。我使用 postgresql 数据库。
任何帮助将不胜感激。
注意:我需要 sql 查询才能找到它。(类似于组合两个表,根据条件计算状态)
解决方案
您可以遍历学校并使用@school.students.group(:status).count
. 它将返回一个有序的哈希映射状态及其计数。
推荐阅读
- azure-functions - 创建密钥保管库后如何分配访问策略
- r - 使用 ggplot 重新创建部分 lm() 图
- php - WordPress 中年存档的问题
- arrays - 带有 2 个匹配字符串的 Swift5 过滤器列表
- python - 如何从嵌套字典中提取值作为 Pandas DataFrames
- python - 使用 Paramiko 检索所有主机密钥(如 ssh-keyscan)
- flutter - 如何将任何 Dart 代码片段格式化为字符串输出
- python - VS Code 没有从 launch.json 中获取 args 列表
- c# - 如何通过 c# 将图像(条形码图像)传递给 rdlc 文件
- python-3.x - 我应该怎么做才能让新的小部件始终落后于 kivy 中的旧小部件?