rails:访问表属性并使用group()

ben*_*ben 2 charts ruby-on-rails ruby-on-rails-3.2

我想从一个指定的表访问属性citiesUser model.这两个表是相关联的.我想制作一个用户城市的饼图,我正在使用chartkick(你可以查看我给出的链接)

在我看来,我有:

<%= pie_chart User.city.group("name").count %>
Run Code Online (Sandbox Code Playgroud)

有人告诉我,因为它不起作用.


更新:

<%= pie_chart User.group("city_id").count %>,它可以对每个城市的用户数进行分组,但标签是城市ID

我想改进图表以获得城市名称的标签

Pet*_*ein 5

从你的问题我不完全确定你想要做什么,但听起来你正试图绘制每个城市的用户数量 - 是吗?如果是这样,您可以通过执行类似操作来获取统计信息

User.group('city_id').count
Run Code Online (Sandbox Code Playgroud)

这将导致拥有每个城市的用户,但标签将是城市ID,而不是名称.我们可以通过添加join子句并按名称分组来改进这一点:

User.joins(:city).group('cities.name').count
Run Code Online (Sandbox Code Playgroud)

我认为,根据你的问题,这会给你你想要的东西.(我在这里对列和表名做了几个假设 - city_id,cities).