【问题标题】:Ruby on Rails find using ORRuby on Rails 使用 OR 查找
【发布时间】:2020-04-02 17:47:23
【问题描述】:

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

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

【问题讨论】:

    标签: javascript ruby-on-rails angularjs ruby


    【解决方案1】:

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

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

    编辑:使用js数组原生查找方法并假设这是一个数组_($scope.reasonOfRejection)你可以这样做

    _($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)

    【讨论】:

    • angular.js:13920 TypeError: _(...).find_by 不是前端显示的函数错误
    • 哦,对不起,这是前端相关的,我以为你试图从 Rails 端查询,我猜这是一个 Array.prototype.find 原生函数,我会更新。答案
    • 是的,我正在尝试从前端查询 rails。
    • 谢谢!现在可以了!因为那个原因,我今天早上一直在失去脑细胞。
    • 太棒了,请记住,正在使用的 find 方法与 javascript 而不是 rails 有关。
    猜你喜欢
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多