我最近开始使用 rvm 来管理多个ruby版本。我已经建立了一个将使用Ruby 2.1.6的新项目。我已经为这个版本创建了一个新的gemset,并将它命名为“ruby2'”。在明确将ruby版本设置为2.1.6和新的gemset之后,我尝试运行我的rails应用程序并遇到以下错误
bin/rails s -p 3007
/home/knolly/.rvm/gems/ruby-2.1.6@ruby2/gems/json-1.8.3/lib/json/common.rb:67: [BUG] Segmentation fault
ruby 1.9.3p551 (2014-11-13) [x86_64-linux] Brightbox
-- Control frame information -----------------------------------------------
c:0045 p:---- s:0131 b:0131 l:000130 d:000130 CFUNC :initialize
c:0044 p:---- s:0129 b:0129 l:000128 d:000128 CFUNC :new
c:0043 p:0099 s:0126 b:0124 l:000123 d:000123 METHOD /home/knolly/.rvm/gems/ruby-2.1.6@ruby2/gems/json-1.8.3/lib/json/common.rb:67
我在StackOverflow上发现了一些帖子,它们提出了像gem pristine --all
这样的修复,但无济于事。
在行中:
/home/knolly/.rvm/gems/ruby-2.1.6@ruby2/gems/json-1.8.3/lib/json/common.rb:67: [BUG] Segmentation fault
ruby 1.9.3p551 (2014-11-13) [x86_64-linux] Brightbox,
Rails似乎使用的是Ruby 1.9.3p551(我用于旧的应用程序),但rails console告诉我它使用的是2.1.6。
如何解决这个问题?
更新
我可以在bundle exec rails s -p 3007
时运行该应用。如何使用bin/rails s
运行它?
答案 0 :(得分:0)
在你的应用程序的根目录中,创建一个名为.ruby-version
的文件,在该文件中添加2.1.6
,现在重新启动终端并进入应用程序的目录。默认情况下,您的应用会使用ruby 2.1.6
。
希望有所帮助!