Se você precisar encontrar um objeto ou criá-lo, se ele não existir, em vez de usar
unless @user = User.find_by(email: params[:email])
@user = User.new(email: params[:email])
end
você pode usar:
@user = User.where(email: params[:email]).first_or_initilize
Isso retornará o primeiro elemento que corresponda às condições ou inicializará um novo objeto com esses parâmetros.