在我正在开发的应用程序中,用户在注册应用程序时可以选择不同类型的行业。
用户通过从下拉选择器中选择其行业类型来选择其行业类型。
这是在user.rb
模型中
INDUSTRY_TYPES = YAML.load_file(Rails.root.join('config', 'industry_types.yml')).freeze
下面是sign up
视图中的代码
<div class="field">
<%= f.label :industry_type %>
<%= f.select(:industry_type, options_for_select(User::INDUSTRY_TYPES)) %>
</div>
一些用户可能在农业,一些在炼钢,等等。
所以我希望能够在index.html.erb
上显示用户的行业类型,例如,两个用户在农业,四个在炼钢行业,因此在两个不同的行业中有6个用户。
industry_type被保存到数据库中。
我的问题基本上是如何从数据库中获取这些值?
update我尝试将这个User.all.map(&:industry_type).count
添加到一个变量中,但它似乎只是计算所有内容。
我知道如何为每个用户显示行业类型,但是要获得每个行业的总数要复杂得多。
有办法这样做吗?
发布于 2017-08-10 17:30:15
您可以执行以下操作:
User.group(:industry_type).count
它应该返回如下结构的散列:
{ "industry_type_1" => 1, "industry_type_1" => 2, "industry_type_1" => 3 }
如果"industry_type_2“与任何用户没有关联,那么它就不会出现在Hash中。换句话说,User.where(id: -1).group(:industry_type).count
返回一个空哈希。
显示结果:
# haml
- User.group(:industry_type).count.each do |industry_type, count|
= "The Industry '#{industry_type}' has #{count} User(s)"
发布于 2017-08-10 17:30:08
你试过像User.group(:industry_type).count
这样的东西吗?
https://stackoverflow.com/questions/45619961
复制相似问题