当我尝试运行rails g devise admin时,出现此错误。我已经设计好了:安装。
有人有想法吗?
invoke active_record
/usr/local/bundle/gems/devise-4.8.0/lib/generators/active_record/devise_generator.rb:100:in `ar_config': undefined method `configuration_hash' for nil:NilClass (NoMethodError)
from /usr/local/bundle/gems/devise-4.8.0/lib/generators/active_record/devise_generator.rb:94:in `postgresql?'
.....
2021/12/25 02:35:59 Command exited with error: exit status 1
我在多数据库环境中遇到了同样的问题。如果您也有这种情况,我认为您跳过了此错误消息的最后一行:
invoke active_record
/gems/ruby/3.2.0/gems/devise-4.9.2/lib/generators/active_record/devise_generator.rb:100:in `ar_config': undefined method `configuration_hash' for nil:NilClass (NoMethodError)
ActiveRecord::Base.configurations.configs_for(env_name: Rails.env, name: "primary").configuration_hash
^^^^^^^^^^^^^^^^^^^
ActiveRecord 似乎期望在database.yml 中有一个“主”数据库。请参阅此处:https://guides.rubyonrails.org/active_record_multiple_databases.html#setting-up-your-application
因此,我解决此问题的方法是将database.yml 中所有出现的
default
替换为primary
,效果很好。
这肯定有副作用......