Ruby on rails 基于其他元素的元素选择

Ruby on rails 基于其他元素的元素选择,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,如何检查教师是否有每个班级的学生,然后只计算属于该特定教师和班级的学生?您可以通过查询来加载班级和学生: Teacher XYZ: Class 1A | 3 students Class 3D | 2 students 然后我会使用group_by按班级对学生进行分组 @teachers = Teacher.includes(students: :class) | 我假设老师和班级都有名字。也许有更好的方法使用has_many之类的东西,但我目前看不到 另一方面,你不应该给你的对象

如何检查教师是否有每个班级的学生,然后只计算属于该特定教师和班级的学生?

您可以通过查询来加载班级和学生:

Teacher XYZ:
Class 1A  |  3 students
Class 3D | 2 students
然后我会使用
group_by
按班级对学生进行分组

@teachers = Teacher.includes(students: :class)

| 
我假设老师和班级都有名字。也许有更好的方法使用has_many之类的东西,但我目前看不到


另一方面,你不应该给你的对象命名
Class
,因为它已经在ruby中定义了,这会给你带来很多问题。为了避免冲突,我把它叫做学校课堂。

老师不应该有很多课吗?然后你就可以为那个老师加载课程了遗憾的是不,老师并不总是教全班。有些情况下,他只教课堂上的几个学生。欢迎来到Stack Overflow。没有必要为学习一门语言而道歉;写出经过深思熟虑的问题,我们很乐意为您提供帮助。在写作时要抓住要点,帮助我们更快地阅读您的问题。至于标记问题,请坚持使用有大量追随者的标记。7名追随者证明,“选择”毫无价值。“有很多”更糟糕,只有两个追随者。“ActiveRecord”会更好。它完全符合我的要求,非常感谢!另外,谢谢你对课堂的建议。你说得对,学校上课会更好。
@teachers = Teacher.includes(students: :class)
<% @teachers.each do |teacher| %>
  <%= teacher.name %>
  <% teacher.students.group_by(&:class).each do |class, students| %>
    <%= class.name %> | <%= students.size %>
  <% end %>
<% end %>