Encontrar ou inicializar objetos RoR

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.