nil 的未定义方法`configuration_hash':NilClass(NoMethodError)

问题描述 投票:0回答:1

当我尝试运行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
ruby-on-rails devise
1个回答
0
投票

我在多数据库环境中遇到了同样的问题。如果您也有这种情况,我认为您跳过了此错误消息的最后一行:

      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
,效果很好。

这肯定有副作用......

© www.soinside.com 2019 - 2024. All rights reserved.