user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
user.authenticate(password)で
合っていればユーザーの情報を出す。
間違っていれば、falseを返すメゾット。
主にログイン等に使われる。
if user && user.authenticate(params[:session][:password])
この文は&&の論理積(and)はnilとfalse以外は
Rubyではnilとfalse以外のすべてのオブジェクトは、真偽値ではtrueになるという性質を利用して、ログインできるかできないかをif文を使って実行している。
真偽値についての理解が浅かったため理解するのに時間がかかった。。。