我正在创建一个管理控制面板,我在最后一步是统计数据。
如何为选择Male
作为gender
的注册用户创建统计信息?
示例:
545名男性注册用户
323名女性注册用户
所以我想在我的视图中输出上面的例子。我不确定如何计算gender
列的行数。
答案 0 :(得分:4)
您提供的信息不足,所以这里有一点心灵感应:)
我想您的模型User
中包含:gender
属性(字符串'男性'或女性')。
因此,获得所需的计数将如下所示:
User.group(:gender).count
这将提供如下的SQL查询:
SELECT COUNT(*) AS count_all, gender AS gender FROM `users` GROUP BY `users`.`gender`
你会得到这样的哈希:
{ 'male' => 545, 'female' => 323 }
根据需要使用此项;)
UPD:如果您需要额外的过滤(例如注册或其他),只需添加额外的where子句。
UPD2:此解决方案用于获取当时的所有统计信息。如果您只想要一个特定性别的统计信息,则应在 JosephL 的答案中使用方法。
答案 1 :(得分:4)
假设您的模型User
包含字段gender
然后您可以将类方法添加到您的用户类。
class User < ActiveRecord::Base
def self.total_males
where(gender: 'male').count
end
def self.total_females
where(gender: 'female').count
end
end
然后在你看来
<%= User.total_males %> Male registered users
<%= User.total_females %> Female registered users
您还需要一个性别字段的索引来快速查询。您可以在迁移中添加索引。