Rails сравнивает значения в 2 разных коллекциях - PullRequest
0 голосов
/ 09 мая 2018

Есть ли способ сравнить значение в одной коллекции, чтобы увидеть, находится ли оно в другой?Я пытаюсь сравнить current_users.groups с тем, что в @service_requests.unit.groups, и если будет совпадение, я буду отображать только запросы пользователей на обслуживание.Ниже работает, но это не то, что я ищу, потому что в нем будет несколько результатов.В основном я ищу способ показа запросов на обслуживание групп только в том случае, если current_user находится в этой группе и не показывает все запросы на обслуживание.

Возможно, лучше удалить это из представления индекса и вместо этого попробовать создать область видимости?

   <% @service_requests.each do |sr| %>
      <% current_user.groups.each do |group| %>
          <% if sr.unit.group == group.title %>
            <%= group.title %>
            <%= group.description %>
          <% end %>
      <% end %>
    <% end %>

1 Ответ

0 голосов
/ 09 мая 2018

Предположим, current_users.groups равно

[{name: 'it'}, {name: 'graphics'}, {name: 'marketing'}]

и @service_requests.unit.groups равно

[{name: 'graphics'}, {name: 'test'}]

тогда вы можете получить пересечение этих двух массивов:

current_users.groups & @service_requests.unit.groups # => [{name: 'graphics'}]

Также посмотрите на эту ссылку для других сценариев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...