Quero adicionar nomes de usuário em massa (para criar usuários fictícios iniciais para criar postagens).
Então, tentei criar um arquivo rake, carregá-lo e executá-lo. Mas não tive sucesso. O arquivo rake nem sempre é carregado, e quando uso outro método, ele é carregado e então um erro é lançado “Não sei como criar…” erro lançado por rails c (nem consigo me lembrar da mensagem de erro, pois tentei mil métodos diferentes por horas para fazê-lo funcionar sem sucesso)
O que eu fiz
Criei o arquivo users.rake
cd /var/www/discourse
mkdir -p lib/tasks
touch lib/tasks/users.rake
Editando com nano
cd /var/www/discourse/lib/tasks
sudo nano users.rake
E então colei o seguinte código no editor e salvei
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
Carregado no rails c e carregado nas tarefas
rails console
load 'lib/tasks/users.rake'
exit
Então tentei criar os usuários
./launcher enter app
rake users:create["username1,username2", "password", "domain.com"]
Existe algum outro método que eu possa tentar pelo terminal sem usar coisas de terceiros.