where("id not in (?) AND id != ?", current_user.friend_ids, current_user)のコードの意味
where("id not in (?) AND id != ?", current_user.friend_ids, current_user)
と書かれたコードがありまして、コードの記述の意味がわかりません。
このコードはツイッターのようなサイトの”友達を探す”ページのコントローラーの一部です。
まず、"id not in (?) AND id != ?"
の部分の意味がわかりません。なぜANDを使っているのか 、(?) はどのような意味なのかid != ?がどんなことを意味しているのかさっぱりわかりません。どなたかこのコードの記述の仕方とその意味を教えてください。
ちなみにコントローラーのコードの全体は
find_friends_controller.rb
class FindFriendsController < ApplicationController
before_action :authenticate_user!
def index
@users = User.where("id not in (?) AND id != ?", current_user.friend_ids, current_user).paginate(page: params[:page])
respond_to do |format|
format.js
format.html
end
end
end
のようになっています。
どうしてあんな複雑で難解なコードで友達が探せるのか疑問です。。。