Load error when running rails console

前端 未结 4 994
广开言路
广开言路 2020-12-11 02:46

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         


        
相关标签:
4条回答
  • 2020-12-11 03:13

    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.

    0 讨论(0)
  • 2020-12-11 03:15

    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.

    Beware!

    Any changes to the bin/spring file gets overwritten when you run the spring binstub command

    0 讨论(0)
  • 2020-12-11 03:17

    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.

    0 讨论(0)
  • 2020-12-11 03:28

    These steps solved my problem:

    • find the current ruby version

    ruby -v

    example:

    ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0]

    • remove this version

    rvm remove 2.1.2

    • install again

    rvm install 2.1.2

    0 讨论(0)
提交回复
热议问题