Ich möchte Benutzernamen in großen Mengen hinzufügen (um anfängliche Dummy-Benutzer zum Erstellen von Beiträgen zu erstellen).
Ich habe versucht, eine Rake-Datei zu erstellen, sie zu laden und dann auszuführen. Aber ohne Erfolg. Die Rake-Datei wird manchmal nicht einmal geladen, und wenn ich eine andere Methode verwende, wird sie geladen und dann wird ein Fehler ausgelöst: “Ich weiß nicht, wie ich … erstellen soll.” Fehler von rails c (ich kann mich nicht einmal an die Fehlermeldung erinnern, da ich stundenlang tausende verschiedene Methoden ausprobiert habe, um es zum Laufen zu bringen, ohne Erfolg).
Was ich getan habe
users.rake-Datei erstellt
cd /var/www/discourse
mkdir -p lib/tasks
touch lib/tasks/users.rake
Bearbeiten mit nano
cd /var/www/discourse/lib/tasks
sudo nano users.rake
Und dann den folgenden Code in den Editor eingefügt und gespeichert
namespace :users do
desc "Create users from a list"
task :create, [:usernames, :password, :domain] => :environment do |task, args|
usernames = args[:usernames].split(',')
password = args[:password]
domain = args[:domain]
User.transaction do
usernames.each do |username|
next if User.exists?(username: username)
email = "#{username}@#{domain}"
user = User.new(username: username, email: email, password: password)
unless user.save
puts "Failed to save user #{username}: #{user.errors.full_messages.join(", ")}"
raise ActiveRecord::Rollback
end
end
end
end
end
In die Rails-Konsole geladen und in Aufgaben geladen
rails console
load 'lib/tasks/users.rake'
exit
Dann versucht, die Benutzer zu erstellen
./launcher enter app
rake users:create["username1,username2", "password", "domain.com"]
Gibt es eine andere Methode, die ich über das Terminal ausprobieren kann, ohne Drittanbieter-Tools zu verwenden?