アプリでユーザー検索の結果をフィルタリングして、友達ではないユーザーのみを表示しようとしています。my friends テーブルには 3 つの列があります。f1(リクエスト送信者のユーザーID)、f2(リクエストを受信したフレンドのユーザーID)、confirmed(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
終わり