Help me een Ruby-script te maken voor gegevensvalidatie
description
Door gegevens te valideren voordat ze worden verwerkt, kan ik fouten in latere stadia voorkomen, de gegevenskwaliteit verbeteren en zorgen voor naleving van zakelijke regels. Dit bespaart tijd en middelen bij gegevensverwerking.
prompt
try_prompt
Ik heb hulp nodig bij het schrijven van een Ruby-script dat de volgende gegevens valideert: {{gegevens_invoer}}. Geef alsjeblieft de validatieregels die ik moet implementeren, zoals formaatcontrol ... more
generate_helper
...
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Hier zijn de validatieregels die je kunt implementeren voor de gegevens:
1. 'email':
- Verplicht veld.
- Moet een geldig e-mailadres zijn, bijvoorbeeld in het formaat 'gebruikersnaam@domein'.
- Controleer op een geldig email-formaat met een regex.
2. 'leeftijd':
- Verplicht veld.
- Moet een geheel getal zijn.
- Moet binnen een redelijke leeftijdsrange liggen, bijvoorbeeld tussen 0 en 120.
Voor een duidelijke en gestructureerde validatie met feedback kun je bijvoorbeeld het volgende Ruby-script gebruiken:
```ruby
def validate_data(data)
errors = []
# Validatie email
if data['email'].nil? || data['email'].strip.empty?
errors << "Het veld 'email' is verplicht."
elsif !(data['email'] =~ /\A[^@\s]+@[^@\s]+\.[^@\s]+\z/)
errors << "Het e-mailadres is ongeldig."
end
# Validatie leeftijd
if data['leeftijd'].nil?
errors << "Het veld 'leeftijd' is verplicht."
elsif !data['leeftijd'].is_a?(Integer)
errors << "De leeftijd moet een getal zijn."
elsif data['leeftijd'] < 0 || data['leeftijd'] > 120
errors << "De leeftijd moet tussen 0 en 120 liggen."
end
if errors.empty?
puts "Alle gegevens zijn geldig."
# Data is schoon en klaar voor verdere verwerking
else
puts "Validatiefouten:"
errors.each { |error| puts "- #{error}" }
end
end
# Voorbeeldgebruik
gegevens = { 'email' => 'test@example.com', 'leeftijd' => 25 }
validate_data(gegevens)
```
Deze code controleert of alle verplichte velden aanwezig en correct zijn, geeft duidelijke feedback bij fouten, en bevestigt validatie als alles in orde is.
provider: deepseek
model: deepseek-chat
Hier zijn de validatieregels en een voorbeeld van een Ruby-script dat je kunt gebruiken:
### Validatieregels:
1. **Email**:
- Verplicht veld
- Moet een geldig e-mailformaat hebben (bevat @ en een domein)
- Optioneel: extra controles zoals DNS-check of regex voor algemeen formaat
2. **Leeftijd**:
- Verplicht veld
- Moet een positief geheel getal zijn
- Moet binnen een realistisch bereik liggen (bijv. 0-120 jaar)
### Ruby-script:
```ruby
def valideer_gegevens(gegevens)
fouten = []
# Email validatie
if gegevens['email'].nil? || gegevens['email'].empty?
fouten << "E-mailadres is verplicht"
elsif !gegevens['email'].match?(/\A[\w+\-.]+@[a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z/i)
fouten << "Ongeldig e-mailformaat"
end
# Leeftijd validatie
if gegevens['leeftijd'].nil?
fouten << "Leeftijd is verplicht"
else
leeftijd = gegevens['leeftijd'].to_i
if leeftijd <= 0 || leeftijd > 120
fouten << "Leeftijd moet tussen 1 en 120 jaar liggen"
end
end
# Resultaat
if fouten.empty?
{ geldig: true, gegevens: {
'email' => gegevens['email'].strip.downcase,
'leeftijd' => gegevens['leeftijd'].to_i
}}
else
{ geldig: false, fouten: fouten }
end
end
# Gebruiksvoorbeeld:
invoer = { 'email' => 'test@example.com', 'leeftijd' => 25 }
resultaat = valideer_gegevens(invoer)
if resultaat[:geldig]
puts "Gegevens zijn geldig: #{resultaat[:gegevens]}"
else
puts "Validatiefouten:"
resultaat[:fouten].each { |fout| puts " - #{fout}" }
end
```
### Extra kenmerken:
- **Trimmen en normaliseren**: E-mails worden omgezet naar kleine letters en ontdaan van spaties
- **Typeconversie**: Leeftijd wordt gegarandeerd een integer
- **Duidelijke foutmeldingen**: Specifieke feedback per validatiefout
- **Uitbreidbaar**: Makkelijk extra velden toe te voegen
Dit script geeft duidelijke feedback en zorgt voor consistente gegevens voor verdere verwerking.

