Search code examples
rubyrubygemsbundler

How to reinstall a gem using bundler


I did a bundle show and get the complete path to a gem directory.

Unfortunately, I removed the directory using rm -r gem_path. Then my rails app isn't working anymore. If I try start server or start rails console it outputs the following error:

<class:Application>: uninitialized constant MyAPP::Application::Gem (NameError)

What should I do to have it back?

I tried bundle install or bundle update in hope of forcing the bundle to search the gem and install it back, but didn't work.

I also tried delete the Gemfile.lock and run bundle install. Nothing changed, same error.

The gem in question is Act as taggable on.


Solution

  • First I did a gem q --L, the shortcut for gem query --local. It outputs me the all the local gems installed.

    actionmailer (3.2.8, 3.2.6, 3.2.1, 3.1.0)
    actionpack (3.2.8, 3.2.6, 3.2.1, 3.1.0)
    activemodel (3.2.8, 3.2.6, 3.2.1, 3.1.0)
    activerecord (3.2.8, 3.2.6, 3.2.1, 3.1.0)
    activeresource (3.2.8, 3.2.6, 3.2.1, 3.1.0)
    activesupport (3.2.8, 3.2.6, 3.2.1, 3.1.0)
    acts-as-taggable-on (2.3.3)
    ...
    

    And then, following DVG advice, I uninstalled the gem using its correct name gem uninstall acts-as-taggable-on and ran bundle install. After that I was able to rails c or rails s again without any problem.