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忘了做什么?
提前致谢。
有几种方法可以将该管理员添加到数据库中:
rails console
- 只需打开控制台并执行 AdminUser.create!(...)
.
seeds.rb
- 打开 db/seeds.rb
文件并粘贴 AdminUser.create!(...)
。然后运行rake db:seed
。请注意,多次 运行ning rake db:seed
将多次创建该管理员 - 最好进行某种验证或改用 AdminUser.find_or_create_by(...)
。
- 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。
我最近将 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忘了做什么? 提前致谢。
有几种方法可以将该管理员添加到数据库中:
rails console
- 只需打开控制台并执行AdminUser.create!(...)
.seeds.rb
- 打开db/seeds.rb
文件并粘贴AdminUser.create!(...)
。然后运行rake db:seed
。请注意,多次 运行ningrake db:seed
将多次创建该管理员 - 最好进行某种验证或改用AdminUser.find_or_create_by(...)
。- 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。