首页 > 解决方案 > 依靠 Rails Active Record 中的嵌套模型

问题描述

我正在显示地图,需要将数据格式化如下:

{"US" => 3, "UK" => 7, "FR" => 0}

其中“US”是一个国家代码和 3 个访问次数另外,我有 3 个表

国家 价格 访问
ID ID price_id
代码 country_id

我正在尝试计算每个国家/地区代码的每次访问,但我拥有的最好的是每个 country_id 的每次访问,就像这样Visit.joins(:price).group('prices.country_id').count导致:

{1 => 3, 2 => 7, 3 => 0}

如何在一个查询中“带来”结果中的 country.code?

标签: sqlruby-on-railsactiverecord

解决方案


我的猜测是

Visit
  .joins(price: :country)
  .group('prices.country_id, countries.code')
  .select('countries.code, count(countries.code)')

推荐阅读