在activerecord数组中搜索和删除

时间:2009-03-10 14:17:48

标签: ruby-on-rails

群组有很多用户。 我有2个activerecord数组: 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 个答案:

答案 0 :(得分:2)

直接回答您的问题,即显示并删除所有froups用户感兴趣的用户:

<% @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 %>