正在获取关联模型的.count



我有一个Ticket.rb模型和School.rb型。

门票belongs_to学校

学校has_many门票

我如何使用ActiveRecord来了解每个学校有多少张门票的.count总数?

我知道Ticket.where(:school_id => -insert School ID here-).count会给我每个学校的个人计数,但我正在用它将数据填充到一个图表中,所以我真的需要更像School.tickets.count的东西。

这有可能不打乱我的联想吗?

谢谢大家。。

Ticket.group(:school_id).count

这将为您提供每个学校id的门票计数,其中key为学校id,value为门票计数

如果你想在学校上按不同的属性分组,那么

Ticket.joins(:school).group("schools.name").count

例如输出:

{3 => 10, 4 => 30}

如果您有一个特定的学校实例(如@school),您可以使用@school.tickets.count

为了获得更好的性能,您可以在此处概述的控制器中使用group方法。

所以在你的控制器中:

def someaction
  @school_tickets = Ticket.group(:school_id)
end

在您的视图中,您可以循环使用@school_tickets,例如:

@school_tickets.each do |school_ticket|
  school_ticket.count
end

最新更新