Я хочу добавить множество имен пользователей (чтобы создать начальных тестовых пользователей для публикации постов).
Я пытался создать файл rake, загрузить его и затем запустить, но без успеха. Файл rake иногда даже не загружается, а когда я использую другой метод, он загружается, но возникает ошибка: «I don’t know how to create …» (ошибка, выдаваемая rails c — я даже не могу вспомнить точный текст ошибки, так как пробовал тысячи разных методов в течение часов, чтобы заставить это работать, но безуспешно).
Что я сделал:
Создал файл users.rake
cd /var/www/discourse
mkdir -p lib/tasks
touch lib/tasks/users.rake
Редактировал его с помощью nano
cd /var/www/discourse/lib/tasks
sudo nano users.rake
Затем вставил следующий код в редактор и сохранил
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
Загрузил в rails c и загрузил в задачи
rails console
load 'lib/tasks/users.rake'
exit
Затем попытался создать пользователей
./launcher enter app
rake users:create["username1,username2", "password", "domain.com"]
Есть ли какой-то другой метод, который я мог бы попробовать через терминал, не используя сторонние инструменты?