Строки приводят к значению 0.0 при запуске их через .to_f, поэтому добавление оператора или, для которого число должно быть больше 1, должно гарантировать, что строки не будут введены.
def pruefeZeitbudget(eingabeZeitaufwand)
@validierungsWert = eingabeZeitaufwand.to_f
loop do
if @validierungsWert > 24 or @validierungsWert < 1
puts 'Wert überschreitet das Tagesmaximum von 24 Stunden. Erneute Eingabe!'
@validierungsWert = gets.chomp.to_f
else
puts 'Eingabe okay.'
break
end
end
end