按天对 Mongoid 对象进行分组

2024-01-22

在控制台中反复尝试后,我想出了这种方法,可以按类似活动记录 (Mongoid) 的对象发生的日期对其进行分组。我不确定这是实现这一目标的最佳方法,但它确实有效。有谁有更好的建议,或者这是一个好方法吗?

#events is an array of activerecord-like objects that include a time attribute
events.map{ |event|
  # convert events array into an array of hashes with the day of the month and the event
  { :number => event.time.day, :event => event }
}.reduce({}){ |memo,day|
  # convert this into a hash with arrays of events keyed by their day or occurrance
  ( memo[day[:number]] ||= [] ) << day[:event]
  memo
}

=>  {
      29 => [e1, e2],
      28 => [e3, e4, e5],
      27 => [e6, e7],
      ...
    }

Thanks!


经过更多的思考和福斯特的帮助,我想出了这个:

events.inject({}) do |memo,event|
  ( memo[event.time.day] ||= [] ) << event
  memo
end

显然,Rails Monkeypatches Enumerable 使用 #group_by 方法,其工作原理如下:

events.group_by { |event| event.time.day }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按天对 Mongoid 对象进行分组 的相关文章

  • ExecJS::Runtime在 Rails 4.1.4 中不可用

    UPDATE 现在一切正常了 谢谢deep https stackoverflow com users 2300000 deep 我安装了 node js 然后得到了一个 TZInfo DataSourceNotFound 错误 通过添加解
  • 如何使用 ActiveRecord 列出所有数据库

    我希望能够使用 ActiveRecord 列出所有数据库 因此 我需要在终端中使用与以下命令等效的 ActiveRecord psql host 192 168 0 100 port 5432 username postgres list
  • 在 Heroku 上的生产模式下使用 Rails 同步 gem 与 Faye 和 Thin

    我正在尝试设置 同步 gem 以在我的 Rails 应用程序中启用实时更新 它使用 Faye 作为实时推送服务 并使用 Thin 作为网络服务器 我对此非常陌生 所以任何建议都会受到赞赏 我的本地服务器上有这个工作 但不知道如何让它在 He
  • git Push heroku master 因“HTTP 400curl 22 请求的 URL 返回错误”而失败

    我正在尝试推送仅显示 你好 世界 的 Rails 应用程序 然后我遇到了如下错误 我想知道如何解决这个问题 git推送heroku大师枚举对象 88 完成 计数对象 100 88 88 完成 增量压缩最多使用 4 个线程 压缩对象 100
  • Rails 轮胎 Elasticsearch 奇怪的错误

    我已经索引了Car拥有一辆车记录的车型mercedes benz在数据库中 如果我搜索这个词benz我收到错误 ActiveRecord RecordNotFound in CarsController index Couldn t fin
  • ruby 我应该使用 self.或者 @

    这是我的红宝石代码 class Demo attr accessor lines def initialize lines self lines lines end end 在上面的代码中我可以使用 lines lines 大多数情况下 我
  • 为什么机架响应主体是数组而不是字符串?

    他们的文档中的一个经典的 hello world 示例 class HelloWorld def call env return 200 Hello world end end 我的问题是为什么第三个值是 Hello world 而不是 H
  • Rails:控制文件存储缓存大小

    Rails 中基于文件的缓存的文档说 请注意 缓存将不断增长 直到磁盘已满 除非您 定期清除旧条目 不幸的是 它没有提供任何有关如何定期清除旧条目的信息 是否设置合适的值 expires in完成这项工作还是清除缓存背后还有其他某种黑魔法
  • Rails3-jquery-autocomplete 如果没有可用数据则清除字段

    我正在使用rails3 jquery autocomplete 如果自动完成没有返回结果 是否可以清除自动完成字段的值 我试图阻止用户提交数据库中没有的值 我使用的是旧版本 但我实现了change处理程序autocomplete call
  • R data.table 中的复杂求和涉及查看其他列

    我有一个数据表 其中变量的每个值v1 and v2有一个关联的 类型 在单独的列中编码 这是一个 MWE X lt data table id 1 5 group c 1 1 2 2 2 v1 c 10 12 14 16 18 type v
  • 为 has_many 或 habtm 动态创建 after_add 和 after_remove 回调?

    有没有办法动态添加after add and after remove回调现有的has many or has and belongs to many关系 例如 假设我有模型User Thing 和一个连接模型UserThingRelati
  • Capistrano + Thin + nginx 不允许用户使用 sudo howto?

    我有一个这样的场景 我想使用 capistrano 部署 ruby on Rails 应用程序 Web 应用程序位于瘦集群上 配置文件存储在 etc thin 下 etc init d thin 中还有一个初始化脚本 因此每当我的服务器需要
  • Rails 6 升级中未初始化的常量 ActiveRecord::ConnectionAdapters::ConnectionManagement (NameError)

    我目前正在将 Rails 项目从 v5 2 3 升级到 v6 0 我正在关注这个guide https guides rubyonrails org upgrading ruby on rails html升级铁轨 但我只停留在第一步 一旦
  • 带有取消订阅链接的 Rails 电子邮件

    我正在开发一个 Rails 4 2 应用程序 该应用程序每周都会有人们注册的活动 他们会在每次活动之前 每周 收到一封提醒电子邮件 我想要电子邮件中的一键取消订阅链接 这似乎是一个常见的任务 但我还没有找到一个好的当前解决方案 我看到的一些
  • 如何在 Haml 中有条件地使用“content_for”包装器

    我正在尝试找到一种更干燥的方法来执行以下操作 if request xhr javascript my javascript else content for scripts do javascript my javascript 我在许多
  • 如何突出显示2个html文件之间的差异

    我的网络应用程序有职位描述 某些用户可以修改这些职位描述 每次修改都会产生新版本的职位描述 职位描述的内容由用户使用tinymce 编辑器直接在textarea 中以html 形式进行编辑 我希望能够向用户展示内容从一个版本到另一个版本所做
  • 将多个 rake 任务合并为一个 rake 任务

    而不是像这样单独运行每个 rake 任务 rake db drop rake db create rake db migrate rake db load 我想运行一个可以完成所有任务的 rake 任务 这就是我的 rakefile des
  • Ruby:如何设置枚举器的状态?

    我正在做一个基于 64 的排列增量器 我已经编写了所有工作代码 但是看看 Ruby 已经作为 Array permutation 生成了一个枚举器 我想利用它并更进一步 无需使用 下一个 进行每个排列 我可以设置起点吗 x A Z to a
  • 从 JSON 在 Devise 中创建用户

    我正在致力于将运行 Devise 的 Rails 3 1 应用程序与我的 iOS 应用程序集成以进行用户身份验证 我希望用户能够从应用程序注册 然后我可以存储这些凭据以便稍后登录 使用 RestKit 我这样做 IBAction regis
  • 如何获取水豚中隐藏元素的值?

    我需要获取隐藏元素的值 我尝试了以下代码 page find xpath span id sample text 它返回零 您可以简单地找到隐藏元素并获取它的值 find sample visible false value 很简单

随机推荐

  • 更好地使用验证或离开事件来验证文本框数据?

    在为 VB NET 文本框编写验证逻辑时 最好使用哪个事件处理程序 证实 or Leave 据我了解 它们是同时发生的 然而 根据这篇文章 MSDN Control Leave 事件 http msdn microsoft com en u
  • CSS 网格。隐藏未使用的区域

    我有基于已知元素构建的网格模板区域 但并非所有元素都可以从数据库中获取 如果我没有从数据库中获取某些内容 那么我不会渲染 html 元素 并且会得到一个带有间隙的空 虚线 行 请参阅附图 空行位于蓝色框下方 是否可以隐藏未使用的区域或消除其
  • 如何使用 avx 指令将 float 向量转换为短整型?

    基本上我如何使用 AVX2 内在函数编写与此等效的内容 我们在这里假设result in float属于类型 m256 while result属于类型short int or short int 8 for i 0 i lt 8 i re
  • 关于Javascript注入的问题

    我一直在 asp net mvc 学习网站上阅读有关 JavaScript 注入的内容 这真是令人大开眼界 我什至从未意识到 想过有人使用 JavaScript 来进行一些奇怪的屁股注入攻击 然而 它给我留下了一些悬而未决的问题 First
  • 使用Python请求获取html?

    我正在尝试自学一些基本的网络抓取 使用 Python 的 requests 模块 我能够抓取各种网站的 html 直到我尝试了以下方法 gt gt gt r requests get http www wrcc dri edu WRCCWr
  • 如何使用变量来引用代号一中的组件?

    我使用 UIBuilder 创建了一个 UI 而不是总是使用findXXXX 我很乐意在Statemachine public class Statemachine private Container c private Tabs t in
  • 是否可以在 launchSettings.json 中引用环境变量?

    我想使用 NuGet 包中的可执行文件来运行我的代码 因此 该 exe 位于我的用户配置文件目录中 所以 该文件看起来像这样 profiles UITests commandName Executable executablePath C
  • 如何在 iOS Safari 上设置渐变背景透明度?

    以下 CSS 在 Safari 上不起作用 在 iPad iOS 上测试 map left navi background ffffff background moz linear gradient left ffffff 35 trans
  • 列表对象没有属性副本

    feed obj self get feed obj request kwargs get feed id ad ingredient id kwargs get ad ingredient id adingredient obj AdIn
  • 使用 tabulate Python 包生成正确的 LaTeX 表

    我正在使用tabulate https pypi python org pypi tabulate 用于生成正确 LaTeX 格式的表格的 Python 包 这是一个 MWE from tabulate import tabulate ta
  • 获取当前正在执行的 Javascript 的 URL

    我正在尝试查找当前正在执行的 javascript 的 url 我知道我可以使用window location href对于当前页面 但这不一定是正在执行的脚本的路径 任何帮助是极大的赞赏 Thanks EDIT 1 我完全愿意使用插件等来
  • 没有规则为“macosx10.10”创建目标 SDK 路径

    我使用的是mac osx10 10 QT5 4 VTK6 2 运行我的代码时出现以下错误 make 2 没有规则可以创建目标 Applications Xcode app Contents Developer Platforms MacOS
  • 获取 setState 不是一个函数

    我收到以下错误 bundle js 31367 未捕获类型错误 this setState 不是 功能 JSX componentDidMount ajax url http intelligencevillage wxtui cn ind
  • 从变量目标 c 中插入换行符

    我正在使用 xml 将数据拉入我的 iphone 应用程序 然后将 xml 值放入变量中 示例变量 123 London road n London n England 然后将该变量设置为标签 我希望换行符出现在标签中 而不是打印 n 如果
  • 是否可以使用 Spring API Gateway 进行威胁防护?

    我将使用 Netflix Zuul 实现 API 网关 是否可以设置任何规则来防止 SQL注入 XML 威胁防护 JSON 威胁防护 我发现只有外部解决方案 API 网关 支持它 None
  • 带有附加 SDK 的 Firefox 中的自定义上下文菜单?

    我希望向显示的 Firefox 上下文菜单添加一个菜单项 仅当用户右键单击特定 URL 时 我有一个测试 url 的函数 我曾经通过订阅 popupshowing 事件来做到这一点 var item document getElementB
  • 使用 MSMQ 和 SQL Server 进行分布式事务,但有时会出现脏读

    我们的 SQL Server 2014 数据库设置为READ COMMITTED SNAPSHOT 我们使用 MSMQ 和分布式事务 我们使用 MassTransit 2 10 在我们系统的一部分中 我们从队列中读取一条消息 进行数据库更新
  • 如何调试nodejs的二进制模块?

    我有一个用 C 编写的 node js 模块 它为 C 库提供一些绑定 该库因 SIGSEGV 而崩溃 因此我需要使用 GDB 对其进行调试并找出问题所在 我已经有该模块的源代码 node modules somelib 如果我进入该文件夹
  • Test::Unit/rake 命令的 Rails 颜色突出显示?

    使用运行测试 单元时耙子测试从 Rails 3 项目目录中的终端命令 测试结果输出没有颜色 因此 不能一目了然地解读它 有没有办法获得结果的彩色输出 就像您可以在 rspec 中获得的那样 gt rspec colour 我发现 redgr
  • 按天对 Mongoid 对象进行分组

    在控制台中反复尝试后 我想出了这种方法 可以按类似活动记录 Mongoid 的对象发生的日期对其进行分组 我不确定这是实现这一目标的最佳方法 但它确实有效 有谁有更好的建议 或者这是一个好方法吗 events is an array of