首页 > 解决方案 > Ruby on Rails 使用 OR 查找

问题描述

再会!我在后端使用 AngularJS 和 Ruby on Rails,我想知道如何使用 find 使用这两个词中的任何一个来搜索对象数组。

console.log(_($scope.reasonOfRejection).find({name: {en: 'Black Flagged'}} || {name: {en: 'Black Flag'}}))

标签: javascriptruby-on-railsangularjsruby

解决方案


您可以使用 find_by 因为 find 用于 ids,您可以这样做:

User.find_by(name: ["Black Flagged", "Black Flag"])

_($scope.reasonOfRejection)编辑:使用 js 数组本机查找方法并假设这是您可以执行的数组

_($scope.reasonOfRejection).find(({ name }) => (
  name.en === "Black Flagged" || name.en === "Black Flag"
))

Find 将返回与条件匹配的第一个项目,如果要返回匹配项目的数组,请改用过滤器。

const array = [{name: { en: "another item"}}, {name: { en: "item"}}, {name: { en: "Black Flagged"}}]
const match = array.find(({ name }) => (
      name.en === "Black Flagged" || name.en === "Black Flag"
    ))
    
    console.log(match)


推荐阅读