db/workout_seeds.rb
# Tworzenie treningów od początku roku do dzisiaj
start_date = Date.new(Date.today.year, 1, 1)
end_date = Date.today
# Funkcja pomocnicza do generowania losowych dat między dwoma datami
def random_date(start_date, end_date)
rand(start_date..end_date)
end
# Funkcja pomocnicza do wybierania losowych treningów
def select_random_exercises(count)
Exercise.order("RANDOM()").limit(count)
end
# Funkcja pomocnicza do wybierania losowych osób
def select_random_people(count)
Person.where(id: 7..9).limit(count)
end
120.times do |index|
workout_date = random_date(start_date, end_date)
workout = Workout.create(
title: "trening z dnia #{workout_date} :: #{index + 1}",
description: Faker::Lorem.paragraphs(number: rand(0..6)),
revision: rand(1..5),
load: "#{rand(5..50)} kg",
load_unit: "kg",
volume_description: "Opis objętości #{index + 1}",
duration: "#{rand(15..60)}",
intensity: rand(1..10),
intensity_description: "Opis intensywności #{index + 1}",
# author_id: rand(1..10), # Zakładając, że masz 10 autorów w bazie danych
author_id: 4,
scheduled_date: workout_date,
workout_type: "ćwiczenie",
volume: "#{rand(1..5)} serii po #{rand(5..20)} powtórzeń"
)
# Wybieranie losowej liczby ćwiczeń dla treningu (można dostosować, jeśli trzeba)
number_of_exercises = rand(1..3)
exercises = select_random_exercises(number_of_exercises)
# Dodawanie wybranych ćwiczeń do treningu
exercises.each do |exercise|
workout.exercises << exercise
end
# Wybieranie losowej liczby osób dla treningu (można dostosować, jeśli trzeba)
number_of_people = rand(1..3)
people = select_random_people(number_of_people)
# Dodawanie wybranych osób do treningu
people.each do |person|
workout.people << person
end
puts "Stworzono trening #{workout.title} na dzień #{workout.scheduled_date} z #{number_of_people} osobami"
end
puts "Utworzono 120 treningów!"
tworzymy plik app/lib/db_seed.rake
namespace :db do
namespace :seed do
desc 'Load data from workout_seeds.rb'
task workout_seeds: :environment do
load(Rails.root.join('db', 'workout_seeds.rb'))
end
task athlete_workout_seeds: :environment do
load(Rails.root.join('db', 'athlete_workout_seeds.rb'))
end
end
end