I am using rails 4.1 and ruby 2.1.1
Everything works, but when I run rails console I get this error
> rails console
Loading development environmen
I just encountered the same problem, and I solved it by spring stop
. I think there is no need to restart the computer. What you should do is to restart spring.
If you encounter this problem you should restart you computer. If that does not fix it read on.
The bin/spring file sets ENV["GEM_HOME"] to a blank string
bin/spring
11 ENV["GEM_PATH"] = ([Bundler.bundle_path.to_s] + Gem.path).join(File::PATH_SEPARATOR)
12 ENV["GEM_HOME"] = ""
13 Gem.paths = ENV
This crashes when running rails console because in line 41
ENV['GEM_HOME'].split(/\//).last
returns nil if ENV['GEM_HOME']
is blank
~/.rvm/rubies/ruby-2.1.1/.irbrc
39 # Calculate the ruby string.
40 rvm_ruby_string = ENV["rvm_ruby_string"] ||
41 (ENV['GEM_HOME'] && ENV['GEM_HOME'].split(/\//).last.split(/@/).first) ||
42 ("#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}" rescue nil) ||
43 (RUBY_DESCRIPTION.split(" ")[1].sub('p', '-p') rescue nil ) ||
44 (`ruby -v` || '').split(" ")[1].sub('p', '-p')
rvm uses the string to set the prompt message in the console. If you change line 12 in bin/spring to
ENV["GEM_HOME"] = "Spring is great!"
You get this nice prompt
bin/rails c
Loading development environment (Rails 4.1.0)
Spring is great! :001 >
I don't really understand why ENV["GEM_HOME"]
is set to a blank string. So, I just change this to get rid of the error. I have posted an issue on the spring github page.
Any changes to the bin/spring file gets overwritten when you run the spring binstub
command
You may just need to specify a gemset with
rvm gemset use YourGemset
I find it's a good idea to use a separate gemset for each project. Then place the name of that project's gemset in a file named .ruby-gemset
in the root of your project. See https://rvm.io/workflow/projects for more info.
These steps solved my problem:
ruby -v
example:
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0]
rvm remove 2.1.2
rvm install 2.1.2