Skip to content

'RailsAdmin::ImportmapFormatter#format': undefined method 'gsub!' for nil #3726

@pupeno

Description

@pupeno

Describe the bug
When I run rails g rails_admin:install I get this error:

~/c4s$ rails g rails_admin:install
           ?  Where do you want to mount rails_admin? Press <enter> for [admin] >
       route  mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
      create  config/initializers/rails_admin.rb
           -  Using [importmap] for asset delivery method
         run  yarn add [email protected] from "."
      create  app/javascript/rails_admin.js
/home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rails_admin-3.3.0/lib/generators/rails_admin/importmap_formatter.rb:17:in 'RailsAdmin::ImportmapFormatter#format': undefined method 'gsub!' for nil (NoMethodError)

      imports['@popperjs/core'].gsub!('lib/index.js', 'dist/esm/popper.js')
                               ^^^^^^
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rails_admin-3.3.0/lib/generators/rails_admin/install_generator.rb:100:in 'RailsAdmin::InstallGenerator#configure_for_importmap'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rails_admin-3.3.0/lib/generators/rails_admin/install_generator.rb:33:in 'RailsAdmin::InstallGenerator#install'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/thor-1.4.0/lib/thor/command.rb:28:in 'Thor::Command#run'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/thor-1.4.0/lib/thor/invocation.rb:127:in 'Thor::Invocation#invoke_command'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/thor-1.4.0/lib/thor/invocation.rb:134:in 'block in Thor::Invocation#invoke_all'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/thor-1.4.0/lib/thor/invocation.rb:134:in 'Hash#each'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/thor-1.4.0/lib/thor/invocation.rb:134:in 'Enumerable#map'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/thor-1.4.0/lib/thor/invocation.rb:134:in 'Thor::Invocation#invoke_all'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/thor-1.4.0/lib/thor/group.rb:243:in 'Thor::Group.dispatch'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/thor-1.4.0/lib/thor/base.rb:584:in 'Thor::Base::ClassMethods#start'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/railties-8.0.2.1/lib/rails/generators.rb:265:in 'Rails::Generators.invoke'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/railties-8.0.2.1/lib/rails/commands/generate/generate_command.rb:26:in 'Rails::Command::GenerateCommand#perform'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/thor-1.4.0/lib/thor/command.rb:28:in 'Thor::Command#run'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/thor-1.4.0/lib/thor/invocation.rb:127:in 'Thor::Invocation#invoke_command'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/railties-8.0.2.1/lib/rails/command/base.rb:178:in 'Rails::Command::Base#invoke_command'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/thor-1.4.0/lib/thor.rb:538:in 'Thor.dispatch'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/railties-8.0.2.1/lib/rails/command/base.rb:73:in 'Rails::Command::Base.perform'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/railties-8.0.2.1/lib/rails/command.rb:65:in 'block in Rails::Command.invoke'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/railties-8.0.2.1/lib/rails/command.rb:143:in 'Rails::Command.with_argv'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/railties-8.0.2.1/lib/rails/command.rb:63:in 'Rails::Command.invoke'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/railties-8.0.2.1/lib/rails/commands.rb:18:in '<main>'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/3.4.0/bundled_gems.rb:82:in 'Kernel.require'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/3.4.0/bundled_gems.rb:82:in 'block (2 levels) in Kernel#replace_require'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/bootsnap-1.18.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in 'Kernel#require'
        from bin/rails:4:in '<main>'

Reproduction steps
Create a Rails 8 project.
Add rails_admin 3.3.0
Run rails g rails_admin:install

Expected behavior
The install runs without error.

Additional context

  • rails version: 8.0.2.1
  • rails_admin version: 3.3.0
  • rails_admin npm package version: I don't know
  • full stack trace:
/home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rails_admin-3.3.0/lib/generators/rails_admin/importmap_formatter.rb:17:in 'RailsAdmin::ImportmapFormatter#format': undefined method 'gsub!' for nil (NoMethodError)

      imports['@popperjs/core'].gsub!('lib/index.js', 'dist/esm/popper.js')
                               ^^^^^^
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rails_admin-3.3.0/lib/generators/rails_admin/install_generator.rb:100:in 'RailsAdmin::InstallGenerator#configure_for_importmap'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rails_admin-3.3.0/lib/generators/rails_admin/install_generator.rb:33:in 'RailsAdmin::InstallGenerator#install'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/thor-1.4.0/lib/thor/command.rb:28:in 'Thor::Command#run'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/thor-1.4.0/lib/thor/invocation.rb:127:in 'Thor::Invocation#invoke_command'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/thor-1.4.0/lib/thor/invocation.rb:134:in 'block in Thor::Invocation#invoke_all'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/thor-1.4.0/lib/thor/invocation.rb:134:in 'Hash#each'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/thor-1.4.0/lib/thor/invocation.rb:134:in 'Enumerable#map'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/thor-1.4.0/lib/thor/invocation.rb:134:in 'Thor::Invocation#invoke_all'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/thor-1.4.0/lib/thor/group.rb:243:in 'Thor::Group.dispatch'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/thor-1.4.0/lib/thor/base.rb:584:in 'Thor::Base::ClassMethods#start'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/railties-8.0.2.1/lib/rails/generators.rb:265:in 'Rails::Generators.invoke'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/railties-8.0.2.1/lib/rails/commands/generate/generate_command.rb:26:in 'Rails::Command::GenerateCommand#perform'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/thor-1.4.0/lib/thor/command.rb:28:in 'Thor::Command#run'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/thor-1.4.0/lib/thor/invocation.rb:127:in 'Thor::Invocation#invoke_command'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/railties-8.0.2.1/lib/rails/command/base.rb:178:in 'Rails::Command::Base#invoke_command'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/thor-1.4.0/lib/thor.rb:538:in 'Thor.dispatch'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/railties-8.0.2.1/lib/rails/command/base.rb:73:in 'Rails::Command::Base.perform'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/railties-8.0.2.1/lib/rails/command.rb:65:in 'block in Rails::Command.invoke'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/railties-8.0.2.1/lib/rails/command.rb:143:in 'Rails::Command.with_argv'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/railties-8.0.2.1/lib/rails/command.rb:63:in 'Rails::Command.invoke'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/railties-8.0.2.1/lib/rails/commands.rb:18:in '<main>'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/3.4.0/bundled_gems.rb:82:in 'Kernel.require'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/3.4.0/bundled_gems.rb:82:in 'block (2 levels) in Kernel#replace_require'
        from /home/pupeno/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/bootsnap-1.18.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in 'Kernel#require'
        from bin/rails:4:in '<main>'

Similar to #3694

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions