поиск и удаление в массиве activerecord - PullRequest
1 голос
/ 10 марта 2009

Группы имеет_ много пользователей. У меня есть 2 массива активных записей: 1. groups = содержит группы со своими пользователями. 2. users = содержит пользователей, посещающих событие.

Я начинаю с перебора групп. Затем я перебираю пользователей в второй массив и поиск этого пользователя в первом массиве (см. код). Если пользователь найден, показать и удалить из массива.

<% groups.each do |group| %> 
<h2><%= group.title %></h2> 
  <% users.each do |user| %> 
    # I want to search for user in group.users 
    # and if present show here and remove the user from 
    # group.users (remove from the array not from the database) 
  <% end %> 
<% end %> 

Я не знаю, как искать пользователя в другом массиве активных записей и затем удалите его. Вся помощь очень ценится.

спасибо

1 Ответ

2 голосов
/ 10 марта 2009

Непосредственно отвечая на ваш вопрос , т.е. отображая и удаляя интересующего пользователя из пользователей всех групп:

<% @groups.collect { |group|
     group.users.delete_if { |user|
       user == my_user
     }
   }.flatten.each do |user| %>

   <%= ((display user)) %>

<% end %>

С другой стороны,

<% @groups.each do |group| %>
   <% if user = group.delete(my_user) %>
     <%= ((display user)) %>
   <% end %>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...