Ruby на Rails находят используя OR - PullRequest
0 голосов
/ 02 апреля 2020

Добрый день! Я использую AngularJS с Ruby на Rails для бэкэнда, и мне интересно, как вы можете использовать find для поиска в массиве объектов, используя любое из двух слов.

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

1 Ответ

1 голос
/ 02 апреля 2020

Вы можете использовать find_by, потому что find предназначен для идентификаторов, и вы делаете это следующим образом:

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

Редактировать: Используя js собственный метод поиска массива и предполагая, что это массив _($scope.reasonOfRejection), вы можете сделать

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

Поиск вернет первый элемент, который соответствует условию, если вы хотите вернуть массив соответствующих элементов, используйте фильтр.

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...