我想添加大量用户名(以创建初始的虚拟用户来发帖)。
所以我尝试创建一个 rake 文件,然后加载并运行它。但没有成功。有时 rake 文件甚至没有被加载,当我使用另一种方法时,它会被加载然后抛出错误“我不知道如何创建……”,这是由 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"]