从 ActiveRecord 模型集合构建哈希

2024-01-10

我正在尝试从模型构建哈希。

这就是我想要构建的哈希类型。

{"United Sates" => "us", "United Kingdom" => "uk" .....}

我尝试了很多方法,现在只是在兜圈子。

这只是我的一些糟糕的尝试。

select = Array.new
countries.each do |country|
  # select.push({country.name => country.code })
  # select[country.name][country.code]
end

h = {}

countries.each do |c|
  # h[] = {c.name => c.code}
  # h[] ||= {} 
  # h[][:name] = c.name
  # h[][:code] = c.code 
  #h[r.grouping_id][:name] = r.name
  # h[r.grouping_id][:description] = r.description
end

请给一些建议。

谢谢


以下是一些单行替代方案:

# Ruby 2.1+
name_to_code = countries.map{ |c| [c.name,c.code] }.to_h

# Ruby 1.8.7+
name_to_code = Hash[ countries.map{ |c| [c.name,c.code] } ]

# Ruby 1.8.6+
name_to_code = Hash[ *countries.map{ |c| [c.name,c.code] }.flatten ]

# Ruby 1.9+
name_to_code = {}.tap{ |h| countries.each{ |c| h[c.name] = c.code } }

# Ruby 1.9+
name_to_code = countries.to_a.each_with_object({}){ |c,h| h[c.name] = c.code }

感谢@Addicted 下面的评论:

# Ruby 1.8+
name_to_code = countries.inject({}){ |r,c| r.merge c.name=>c.code }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 ActiveRecord 模型集合构建哈希 的相关文章

  • 如何跳过 Devise SessionsController 的 before_filter ?

    我有一个before filter in my ApplicationController 也就是说 对于我的项目中的每个控制器 我怎么能够skip before filter对于设计的SessionsController创造行动 这是我的
  • Rails 中的并行方法

    我的 Rails Web 应用程序有数十种方法 从调用 API 到处理查询结果 这些方法具有以下结构 def method one batch query API process data end def method nth batch
  • 使用Rails UJS,如何从函数提交远程表单

    我正在使用Rails UJS 我有一个表单设置来进行远程提交 如下所示
  • 如何让 Sinatra 通过 HTTPS/SSL 工作?

    正如标题所示 谷歌没有提供任何与此相关的有用信息 如何为 Sinatra 应用程序设置和配置 HTTPS SSL 如何创建 HTTPS 路由 我以前从未在我的应用程序中使用过 HTTPS 也没有调整 Rack 其他内容的经验 所以我很欣赏详
  • 使用 Ruby 获取 AWS 区域名称

    我正在为 AWS 开发 Rails 应用程序 并希望为区域名称创建下拉菜单 例如 us east 1 等 如果有人已经创建了 gem 来获取它们 我想使用它 有人知道这样的 gem 或有用的 API 吗 适用于 Ruby 的 AWS 开发工
  • 为什么 Rails 5 将“索引”更改为“外键”?

    如果你在 Rails 4 中有这个 t references event index true 现在你可以使用foreign key代替index在 Rails 5 中 我不太明白为什么他们决定这样做 因为功能保持不变 您添加的是索引 而不
  • gem install rmagick 在 OS X El Capitan 上失败

    几天前我升级到 El Capitan 并运行了 brew update brew upgrade 它更新了 imagemagick 导致 ruby 的 rmagick gem 停止工作 我想没问题 我就跑 gem install rmagi
  • 无需别名的 Ruby YAML 编写

    我正在从 ruby 将数据写入 yaml 文件 并且经常在该文件上添加别名 像 id001 somekey somevalue id001 就我而言 我使用 yaml 文件来aid可读性并将名称添加到文件中的值 因为现有数据只是 没有键的分
  • 由于符号链接错误,无法在 Mac OSX 10.8.1 中安装 ruby​​-1.9.2

    首先 我尝试了常见的rvm安装 rvm安装1 9 2 但是 显示了以下错误 The provided compiler usr bin gcc is LLVM based it is not yet fully supported by r
  • 从部分重定向回具有部分的同一页面后保留验证错误

    因此 我试图从我的表单中获取错误 该表单在我的 root path 中呈现为部分内容 在我尝试发布它但失败 或成功 后 我想重定向回 root path 但是 redirect to 决定不保存任何验证信息 想知道如何做到这一点 class
  • Capybara 的 has_selector 有哪些选项?

    我在 RSpec 中遇到此错误 有没有任何文档have selector解释了选项哈希中的每个键以及它到底有什么作用 invalid keys content should be one of text visible between co
  • Memcachier 达到缓存限制时 Heroku 请求超时

    我使用 Memcachier Dalli 作为客户端 将 Rails 应用程序部署到 Heroku 我正在使用免费插件 提供 25 MB 缓存 我们开始收到来自heroku的请求超时 经过调试 我们发现手动刷新Memcachier解决了问题
  • Twitter Bootstrap 中下拉链接的模态

    我正在尝试从下拉菜单中的链接进行模式启动 该模式似乎已启动 网站变为灰色 但看不到 来自不在下拉列表中的常规链接的模态工作得很好 我对 jquery 进行了愚弄 但由于我是 jquery 的新手 所以没有任何结果 这是我的网站代码
  • 数据库分片和 Rails

    在 Rails 中处理分片数据库的最佳方法是什么 分片应该在应用层 活动记录层 数据库驱动层 代理层还是其他层处理 各自的优点和缺点是什么 FiveRuns 有一个名为的 gem数据结构 https github com bpot data
  • ruby 的 String .hash 方法如何工作?

    我只是红宝石的新手 我见过一个字符串方法 String hash 例如 在irb 我试过了 gt gt mgpyone hash returns gt 144611910 这个方法是如何工作的 The hash方法是为所有对象定义的 看文档
  • RSpec 请求规范发布一个空数组

    我目前正在 Rails 中开发 API 端点 如果我需要的数据无效 我想确保端点响应具有正确的错误状态 我需要一个 id 数组 无效值之一是空数组 Valid vendor district ids 2 4 5 6 Invalid vend
  • 通过 ESI:include 设置 Cookie,如何?

    我正在尝试使用 esi 在我的网站上创建忍者缓存 这个想法是 该网站大部分是静态的 我只需要在用户是否登录时做一些花哨的事情 所以我试图在页面A上放置一个 并在页面B的应用程序中设置触发器 这样我就可以将页面 A 缓存在 varnish 上
  • 在 ActiveAdmin 或打印解决方案中动态更改分页

    我是 Activeadmin 和 Rails 的新手 我需要一些帮助 我有一个分页模型 我想允许用户更改分页值或完全禁用它 这样它就可以打印 到打印机 所有记录 或过滤后的记录 我知道我可以在 before filter 中使用 per p
  • Rails 3.1 和图像资源

    我已将管理主题的所有图像放入名为 admin 的文件夹内的资产文件夹中 然后我像平常一样链接到它 Ruby image tag admin file jpg CSS logo background url assets images adm
  • Rails 4 的 mobile_fu

    我正在尝试将我的应用程序从 Rails 3 2 13 切换到 Rails 4 在此过程中 我遇到了一个主要障碍 我使用 gem mobile fu 来确定用户是否来自移动设备 该 gem 需要 Railties 3 2 13 但 Rails

随机推荐

  • angularjs:在 ui-bootstrap 模式中使用指令

    我不知道如何从使用 dialog 服务创建的模式中调用指令 该指令还应该能够看到模式上的按钮并覆盖它们的 ng click 操作 这是我的模态模板 div class modal header h1 Rechercher h1 div di
  • 如何为Apple Watch添加加载视图?

    我想在按下 WKInterfaceButton 后显示加载视图 苹果提供的视图 我需要这个 因为按下 WKInterface 按钮后 我将调用主 iPhone 应用程序来执行一些服务调用 这将需要一些时间才能返回响应 WKInterface
  • 从 Visual Studio 2012 签入 TFS 后,所有文件都标记为只读

    我有两个项目的解决方案 我刚刚标记了解决方案并签入了它 现在所有文件的左侧都有蓝色挂锁的小图像 这显然意味着它们被标记为只读 到目前为止 我一直只使用 Tortoise SVN 这是我第一次签入 TFS 那么为什么会发生这种情况 或者如果这
  • 防止TinyMCE删除span元素

    这是问题演示 你可以在这里尝试一下 http fiddle tinymce com SLcaab http fiddle tinymce com SLcaab 这是TinyMCE默认配置 减去所有插件 使用扩展有效元素 跨度 1 打开 Ht
  • 如何在 Linux 和 Solaris 上编译 C?

    我想制作一个可以在 Linux 和 Solaris 中编译的 Makefile 我知道如何单独执行此操作 但如何将两者结合起来并能够检测我正在使用哪种操作系统 我试图仅对一个简单的 C 文件执行此操作 但更改的是编译器的名称 GNU Aut
  • 在 C++ 中,编译器“内联”函数对象意味着什么?

    在维基百科中它表示此类对象与 for each 一起使用时具有性能优势 因为编译器可以 内联 它们 我对这在这种情况下的确切含义有点模糊 或者在我不好意思说的任何情况下 谢谢你的帮助 最后一个参数为for each模板是一个functor
  • iOS 12 在 QuickType 栏中建议电话号码

    Lyft 如何在 QuickType 栏中建议我的电话号码 以便我无需手动输入 我知道 Apple 在 iOS 12 中引入了自动填充用户名 密码 安全代码等功能 看起来此电话号码建议可能使用类似的功能 但我不知道如何让我的任何应用程序建议
  • http://schema.openid.net/contact/email 和 http://axschema.org/contact/email 之间的区别

    何时使用http schema openid net contact email http schema openid net contact email以及何时使用http axschema org contact email http
  • 捕获信号:使用成员函数作为信号处理程序

    我有一个对象在无限循环中执行一些工作 这main 实例化该对象并调用run 方法 由于我不想使用线程 因此我需要一个解决方案来使我的对象停止运行 下面你就可以看到我的想法了 struct Foo void run running 1 whi
  • 如何使用 C# 启动或停止远程计算机中的 IIS 和 Windows 服务

    这段代码出现异常 尽管我在远程计算机上拥有管理员权限 class Program static void Main string args var sc new System ServiceProcess ServiceController
  • Docker 在构建时组成缺失的纱线依赖项

    在Dockerfile中运行yarn install时无法获取node modules文件夹 test sof docker compose yml Dockerfile package json yarn lock docker comp
  • HTTP 错误 503。该服务在简单的 ASP.NET 4.0 网站下不可用 [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我的本地笔记本电脑上发生了一些奇怪的事情 我在本地工作了很长时间的网站没有启动 为了解决这个问题 我创建了一个仅包含 index ht
  • AngularJS 会忽略 HTTP 标头中的 Set-Cookie

    我正在开发一个基于客户端 AngularJS 和服务器端 API Tomcat Jersey for WS 的 Java 应用程序 我的API的某些路径受到限制 如果用户没有会话 则返回的响应状态为401 在客户端 401 http状态被拦
  • 了解类对象构造

    我正在阅读 N3797 的第 12 7 条 给出以下示例 struct X int i struct Y X Y non trivial struct A int a struct B public A int j Y y non triv
  • 读取带有转义字符的 csv

    我有一个 csv 文件 其中包含一些文本 我想对这段文本进行标记 拆分为单词列表 但我遇到了如何处理的问题pd read csv解释转义字符 我的 csv 文件如下所示 text number one line nother line 12
  • 使用 R 将数据帧的多行转换为一行多列[重复]

    这个问题在这里已经有答案了 我有一个包含四列的数据框 df data frame UserId c 1 2 2 2 3 3 CatoId c C A B C D E No c 1 9 2 2 5 3 UserId CatoId No 1 C
  • 如何在 TeamCity 中设置构建代理优先级?

    我有两个代理可以构建我的配置 我设置了两个 因为有时我需要同时进行两个构建 如果两者都空闲且可用 如何设置构建代理优先级以强制 TeamCity 选择特定代理 现在它随机或通过一些未知因素选择代理 您可以过滤使用哪些代理 但我不确定您是否可
  • Android Q 中未显示 Toast

    Toast不适用于安卓Q 有什么变化吗Toast 我找不到任何发行说明Toast 我的代码很简单 override fun onCreate savedInstanceState Bundle super onCreate savedIns
  • Rasa 聊天机器人可以发起对话吗?

    我计划部署基于 rasa 的机器人和监控引擎 因此 如果出现问题 我希望机器人开始与特定用户进行对话 那可能吗 一个简单的方法是将用户消息从您的监控系统发送到您的输入通道 https rasa com docs core connector
  • 从 ActiveRecord 模型集合构建哈希

    我正在尝试从模型构建哈希 这就是我想要构建的哈希类型 United Sates gt us United Kingdom gt uk 我尝试了很多方法 现在只是在兜圈子 这只是我的一些糟糕的尝试 select Array new count