我试图在我的应用中过滤用户搜索的结果,以仅显示不是朋友的用户。我的朋友表有3列; f1(发送请求者的用户ID),f2(接收请求的朋友的用户ID)以及确认(布尔值为true或false)。正如你所看到的,@usersfiltered是搜索的结果。然后建立当前用户的朋友的定义。然后我试图从搜索结果中删除朋友。这似乎并不奏效,但应该非常简单。我试过删除(不好)并销毁。在循环期间从阵列中删除对象
def index
#THIS IS THE SEARCH RESULT
@usersfiltered = User.where("first_name LIKE?", "%#{params[:first_name]}%")
#THIS IS DEFINING ROWS ON THE FRIEND TABLE THAT BELONG TO CURRENT USER
@confirmedfriends = Friend.where(:confirmed => true)
friendsapproved = @confirmedfriends.where(:f2 => current_user.id)
friendsrequestedapproved = @confirmedfriends.where(:f1 => current_user.id)
#GOING THROUGH SEARCH RESULTS
@usersfiltered.each do |usersfiltered|
if friendsapproved.present?
friendsapproved.each do |fa|
if usersfiltered.id == fa.f1
#NEED TO REMOVE THIS FROM RESULTS HERE SOMEHOW
usersfiltered.remove
end
end
end
#SAME LOGIC
if friendsrequestedapproved.present?
friendsrequestedapproved.each do |fra|
if usersfiltered.id == fra.f2
usersfiltered.remove
end
end
end
end
末
而不是'删除'尝试使用'销毁' –
不会破坏用户? – brad
是的,抱歉,我想我误解了你的问题。 –