namespace :invitations do desc "Generate invitations for all users" task :generate_for_all_users, [:amount_per_user] => :environment do |t, args| count = 0 User.all.each do |user| amt_to_create = args[:amount_per_user].to_i - user.invitations.unused.count next unless amt_to_create > 0 amt_created = 0 amt_to_create.times do user.invitations << Invitation.create(user: user) count += 1 amt_created += 1 end puts "Created #{amt_created} new invitations for #{user.address}" end puts "---\nCreated #{count} new invitations overall" end end