ruby-on-rails - belongs_to 关联栏中的组函数

标签 ruby-on-rails ruby activerecord enums

用户.rb

enum gender: [:Male, :Female] 
belongs_to :qualification

资格.rb

has_many :users

当我查询时

User.all.group(:gender).count.map { |k, v| [User.genders.key(k), v] }.to_h

它给了我

{"Male"=>18, "Female"=>1}

但我不知道做同样的资格,因为协会参与其中。我该怎么做?

User.all.group(:qualification_id).count.map { ??? }

最佳答案

您可以使用带有关联名称的 joins() 在关联模型之间执行联接,然后按联接模型的任何列分组。

例如,如果您想按资格的 name 列进行分组:

User.joins(:qualification).group('qualifications.name').count

joins方法中使用符号:qualification描述关系,但在中使用表名'qualifications' group 方法来指定列。这将生成如下 SQL 请求:

SELECT COUNT(users.id)
FROM users
INNER JOIN qualifications ON users.qualification_id = qualifications.id
GROUP BY qualifications.name

关于ruby-on-rails - belongs_to 关联栏中的组函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35086845/

相关文章:

ruby - 解析 ERB 文件的库

ruby - 如何检查服务是否在 Chef 中运行?

ruby-on-rails - SQLite3::ConstraintException:FOREIGN KEY 约束失败:DELETE FROM

ruby-on-rails - 在 Rails3 中使用多个范围参数

ruby-on-rails - Rails 应用程序中初始化 DRb 服务的正确位置在哪里?

ruby-on-rails - 在移动设备上使用替代的Rails布局,但 View 相同

ruby-on-rails - 如何使用 ActiveRecord 模型创建 'OR' 条件

ruby-on-rails - respond_to block 总是渲染 html

ruby-on-rails - 忘记密码设计 gem API

ruby-on-rails - Rails 3.2 - haml 与 erb。哈姆更快吗? (2012 年 2 月)