ruby-on-rails - 在 Ruby 中从 .map 中排除数据
问题描述
我有这个 .map 函数,它返回所有启用的雇主。
::Employer.enabled.ordered.map do |e|
我需要过滤掉 == "some text" 的雇主
我试过这个,但它没有给我我正在寻找的结果:
::Employer.enabled.ordered.map do {|e| e.name == "some text" ? nil : [e] }.compact
我是 Ruby 新手,不擅长语法,我缺少什么?
解决方案
ruby 中有一个可用的select
方法
a = [:foo, 'bar', 2, :bam]
a1 = a.select {|element| element.to_s.start_with?('b') }
a1 # => ["bar", :bam]
对于您的特定用例(仅保留e
不等于的项目some text
):
::Employer.enabled.ordered.select do {|e| e.name != "some text" }
其他选项是select!
,reject!
或reject
。它们中的每一个都有不同的行为,但它们的使用是为了filter
。
推荐阅读
- geoip - 在 mautic 中上传 GeoLite2-City.mmdb.missing 文件的问题
- sql - 如何通过VIEW删除?
- pip - python3.7 mac 安装 spacy 的问题
- node.js - Node.js - Firebase-admin 在安装时失败
- c - 为什么这会给我一个系统上的分段错误而不是另一个系统?
- sql-server - 违反 PRIMARY KEY 约束。无法在对象中插入重复键 - SQL Server - 简单表
- audio - 如何更改 SoX 的录音设备?
- flutter - 为什么这两种为 onPressed 指定回调的方式有效?
- selenium - 无法使用 intellij 和 ubuntu 运行黄瓜场景,实现步骤定义但它们已经实现
- java - CompletableFuture 异常处理 runAsync & thenRun