.
.
.
private
# Zwraca true, jeeli dane w formularzu przegldania s prawidowe. W przeciwnym przypadku zwraca false
def valid_input?
  @spec = Spec.new
  # Walidacja modelu Spec (@spec.valid? poniej) wykryje nieprawidowe kody pocztowe
  zip_code = params[:zip_code]
  @spec.zip_code = zip_code
  # Jest sporo kodw pocztowych, o ktrych nie mamy informacji
  location = GeoDatum.find_by_zip_code(zip_code)
  if @spec.valid? and not zip_code.blank? and location.nil?
    @spec.errors.add(:zip_code, "nie figuruje w naszej bazie danych")
  end 
  # acuchy okrelajce wiek powinny konwertowa si do liczb cakowitych
  unless params[:min_age].valid_int? and params[:max_age].valid_int?
    @spec.errors.add("Zakres wieku", "jest nieprawidowy")
  end
  # Kod pocztowy jest niezbdny, jeeli okrelono liczb mil
  miles = params[:miles]
  if miles and not zip_code
    @spec.errors.add(:zip_code, "nie moe by puste")
  end
  # Liczba mil powinna konwertowa si do poprawnej liczby zmiennoprzecinkowej
  unless miles.nil? or miles.valid_float?
    @spec.errors.add("Promie", "jest nieprawidowy")
  end
  # Dane wejciowe s poprawne, jeeli obiekt errors jest pusty
  @spec.errors.empty?
 end

