rails 中止 "Don't know how to build task 'AdminUser.create!()"

rails aborted "Don't know how to build task 'AdminUser.create!()"

我最近将 gem Active Admin 添加到我的 rails 应用程序(使用 rails 5.2.6),我让它与默认管理员一起工作并且它按预期工作.但是我无法使用 AdminUser.create!(email: "admin@gmail.com", password: "password", password_confirmation: "password") 添加新管理员,因为我收到 rails aborted 错误然后 Don't know how to build task 'AdminUser.create!(email: "admin@gmail.com", password: "password", password_confirmation: "password").

我已经尝试使用 rails db:migrate 和 运行 我的种子。 我也在使用 gem.

完整跟踪:

    rails aborted!
Don't know how to build task 'AdminUser.create!(email: example@gmail.com, password: password, password_confirmation: password)' (See the list of available tasks with `rails --tasks`)
/var/lib/gems/2.7.0/gems/rake-13.0.6/lib/rake/task_manager.rb:59:in `[]'
/var/lib/gems/2.7.0/gems/rake-13.0.6/lib/rake/application.rb:159:in `invoke_task'
/var/lib/gems/2.7.0/gems/rake-13.0.6/lib/rake/application.rb:116:in `block (2 levels) in top_level'
/var/lib/gems/2.7.0/gems/rake-13.0.6/lib/rake/application.rb:116:in `each'
/var/lib/gems/2.7.0/gems/rake-13.0.6/lib/rake/application.rb:116:in `block in top_level'
/var/lib/gems/2.7.0/gems/rake-13.0.6/lib/rake/application.rb:125:in `run_with_threads'
/var/lib/gems/2.7.0/gems/rake-13.0.6/lib/rake/application.rb:110:in `top_level'
/var/lib/gems/2.7.0/gems/railties-5.2.6/lib/rails/commands/rake/rake_command.rb:23:in `block in perform'
/var/lib/gems/2.7.0/gems/rake-13.0.6/lib/rake/application.rb:186:in `standard_exception_handling'
/var/lib/gems/2.7.0/gems/railties-5.2.6/lib/rails/commands/rake/rake_command.rb:20:in `perform'
/var/lib/gems/2.7.0/gems/railties-5.2.6/lib/rails/command.rb:48:in `invoke'
/var/lib/gems/2.7.0/gems/railties-5.2.6/lib/rails/commands.rb:18:in `<main>'
/var/lib/gems/2.7.0/gems/bootsnap-1.8.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/var/lib/gems/2.7.0/gems/bootsnap-1.8.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/var/lib/gems/2.7.0/gems/bootsnap-1.8.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/var/lib/gems/2.7.0/gems/bootsnap-1.8.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/var/lib/gems/2.7.0/gems/bootsnap-1.8.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/home/magus/Desktop/Proyecto ing software/grupo-56/bin/rails:9:in `<top (required)>'
/var/lib/gems/2.7.0/gems/spring-2.1.1/lib/spring/client/rails.rb:28:in `load'
/var/lib/gems/2.7.0/gems/spring-2.1.1/lib/spring/client/rails.rb:28:in `call'
/var/lib/gems/2.7.0/gems/spring-2.1.1/lib/spring/client/command.rb:7:in `call'
/var/lib/gems/2.7.0/gems/spring-2.1.1/lib/spring/client.rb:30:in `run'
/var/lib/gems/2.7.0/gems/spring-2.1.1/bin/spring:49:in `<top (required)>'
/var/lib/gems/2.7.0/gems/spring-2.1.1/lib/spring/binstub.rb:11:in `load'
/var/lib/gems/2.7.0/gems/spring-2.1.1/lib/spring/binstub.rb:11:in `<top (required)>'
/usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:72:in `require'
/usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:72:in `require'
/home/magus/Desktop/Proyecto ing software/grupo-56/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'

正如我之前所说,所有其他 ActiveAdmin 功能都按预期工作,只是我无法创建新管理员。

我在做什么wrong/could忘了做什么? 提前致谢。

有几种方法可以将该管理员添加到数据库中:

  1. rails console - 只需打开控制台并执行 AdminUser.create!(...).
  2. seeds.rb - 打开 db/seeds.rb 文件并粘贴 AdminUser.create!(...)。然后运行rake db:seed。请注意,多次 运行ning rake db:seed 将多次创建该管理员 - 最好进行某种验证或改用 AdminUser.find_or_create_by(...)
  3. rake 任务 - 在 lib/tasks 中创建一个 rake 文件,名称并不重要,但它应该以 .rake 结尾(例如:update.rake
task :add_admin do
  AdminUser.find_or_create_by(email: "admin@gmail.com", password: "password", password_confirmation: "password")
end

运行 它与 rake add_admin.

如果你只想为你自己,你的本地机器管理,使用控制台方法,否则选择其他两个,但确保 rake 任务是 idempotent