我試圖在我的應用中過濾用戶搜索的結果,以僅顯示不是朋友的用戶。我的朋友表有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
是的,抱歉,我想我誤解了你的問題。 –