首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在rails应用程序中访问工业类型数

在rails应用程序中访问工业类型数
EN

Stack Overflow用户
提问于 2017-08-10 17:23:57
回答 2查看 28关注 0票数 1

在我正在开发的应用程序中,用户在注册应用程序时可以选择不同类型的行业。

用户通过从下拉选择器中选择其行业类型来选择其行业类型。

这是在user.rb模型中

代码语言:javascript
运行
复制
 INDUSTRY_TYPES = YAML.load_file(Rails.root.join('config', 'industry_types.yml')).freeze

下面是sign up视图中的代码

代码语言:javascript
运行
复制
   <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添加到一个变量中,但它似乎只是计算所有内容。

我知道如何为每个用户显示行业类型,但是要获得每个行业的总数要复杂得多。

有办法这样做吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-10 17:30:15

您可以执行以下操作:

代码语言:javascript
运行
复制
User.group(:industry_type).count

它应该返回如下结构的散列:

代码语言:javascript
运行
复制
{ "industry_type_1" => 1, "industry_type_1" => 2, "industry_type_1" => 3 }

如果"industry_type_2“与任何用户没有关联,那么它就不会出现在Hash中。换句话说,User.where(id: -1).group(:industry_type).count返回一个空哈希。

显示结果:

代码语言:javascript
运行
复制
# haml
- User.group(:industry_type).count.each do |industry_type, count|
  = "The Industry '#{industry_type}' has #{count} User(s)"
票数 1
EN

Stack Overflow用户

发布于 2017-08-10 17:30:08

你试过像User.group(:industry_type).count这样的东西吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45619961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档