新手问题 进入 rails console 报 ruby 解释器错误

lwd369 · 发布于 2016年09月29日 · 最后由 biedalian 回复于 2017年07月01日 · 1210 次阅读
28150

ruby新人一枚。。最近碰到一个奇怪的问题

在运行完rails生成器生成模型/控制器等文件后,再进入沙盒环境的rails conosle就会报ruby解释器错误:

rails g model User name:string
rails console --sandbox

#抛出错误
#上方行数太多了,terminal无法显示完全
.
.
.
.
 1558 /Users/x/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0.1/lib/rails/commands/console_helper.rb
 1559 /Users/x/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0.1/lib/rails/commands/console.rb
 1560 /Users/x/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0.1/lib/rails/console/app.rb
 1561 /Users/x/.rvm/gems/ruby-2.3.1/gems/railties-5.0.0.1/lib/rails/console/helpers.rb

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

如果运行完数据库迁移,在rails console里创建一个模型实例也是抛出一样的错误。

rails g model User name:string
rails db:migrate

rails console
Running via Spring preloader in process 56859
Loading development environment (Rails 5.0.0.1)
2.3.1 :001 > User.new

#抛出错误
.
.
.
 1574 /Users/x/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/relation/batches.rb
 1575 /Users/x/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/relation.rb
 1576 /Users/x/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/associations/collection_proxy.rb
 1577 /Users/x/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/association_relation.rb

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

不确定是不是升级到macOS10.12造成的?我发现升级后系统自带的ruby版本变成了2.3,但也有同事升级10.12后ruby版本依旧是2.0

折腾了好久,整个ruby环境基本上也按站内的wiki重新安装了一遍,但依旧有这个问题,不知道有什么办法可以解决吗?

再不行是不是干脆全新安装一遍macOS10.12算了囧

共收到 11 条回复
121

一般都是 Ruby 当前编译的版本与操作系统版本不同造成的. 这个问题很可能跟 macOS 10.12 有关.

重新编译应该是ok的. 你可以试试. 最好用的 rbenv 来处理

28150

#1楼 @lyfi2003 我用rvm可以吗? 刚刚用rvm下载编译了ruby2.3,和OS保持一致了。不过还是抛出同样的错误.. rvm和rbenv能共存么..

28150

#1楼 @lyfi2003 删除了rvm,用rbenv安装了ruby2.3也还是老样子😰

121

#3楼 @lwd369 可能真遇到 ruby 与 macOS 10.12 的 bug 了.

13587

正在用10.12和ruby 2.3.1 完全没问题。 试试先spring stop?

28150

#5楼 @mengqing 有效!非常感谢🙏 不过每次运行完生成器或者迁移都需要spring stop一下才可以,否则也是报错 不知道是啥原因

28150

#5楼 @mengqing 我把spring的gem给移除掉了后就没这个问题了😳 移除spring没什么影响吧?

29283

OS X 10.12也遇到了同样的问题, 移除spring gem后解决了。@lwd369 @mengqing 十分感谢!

25844

rails 5 今天同样碰到这样的问题。spring stop 也解决了。谢谢

96

搬砖from全栈营leo--整体解决思路:

“ 1.打开你项目里的 Gemfile 文件 2.注释其中两行代码(禁用spring) 注释 gem "spring" 注释 gem "spring-commands-rspec" ”

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册