bgc*_*ode 5 ruby console ruby-on-rails readline
此问题是间歇性的,但按向上箭头以获取先前输入的命令我将收到错误,例如:
/Users/me/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-2.3.14/lib/active_support/whiny_nil.rb:52:in `method_missing': undefined method `force_encoding' for nil:NilClass (NoMethodError)
from /Users/me/.rvm/gems/ruby-1.9.3-p194/gems/rb-readline-0.4.2/lib/rbreadline.rb:3801:in `_rl_col_width'
from /Users/me/.rvm/gems/ruby-1.9.3-p194/gems/rb-readline-0.4.2/lib/rbreadline.rb:2944:in `update_line'
from /Users/me/.rvm/gems/ruby-1.9.3-p194/gems/rb-readline-0.4.2/lib/rbreadline.rb:3486:in `block in rl_redisplay'
from /Users/me/.rvm/gems/ruby-1.9.3-p194/gems/rb-readline-0.4.2/lib/rbreadline.rb:3481:in `each'
from /Users/me/.rvm/gems/ruby-1.9.3-p194/gems/rb-readline-0.4.2/lib/rbreadline.rb:3481:in `rl_redisplay'
from /Users/me/.rvm/gems/ruby-1.9.3-p194/gems/rb-readline-0.4.2/lib/rbreadline.rb:4618:in `_rl_internal_char_cleanup'
from /Users/me/.rvm/gems/ruby-1.9.3-p194/gems/rb-readline-0.4.2/lib/rbreadline.rb:4679:in `readline_internal_charloop'
from /Users/me/.rvm/gems/ruby-1.9.3-p194/gems/rb-readline-0.4.2/lib/rbreadline.rb:4743:in `readline_internal'
from /Users/me/.rvm/gems/ruby-1.9.3-p194/gems/rb-readline-0.4.2/lib/rbreadline.rb:4765:in `readline'
from /Users/me/.rvm/gems/ruby-1.9.3-p194/gems/rb-readline-0.4.2/lib/readline.rb:40:in `readline'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/input-method.rb:115:in `gets'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:139:in `block (2 levels) in eval_input'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:273:in `signal_status'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:138:in `block in eval_input'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:188:in `call'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:188:in `buf_input'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:103:in `getc'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/slex.rb:205:in `match_io'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/slex.rb:75:in `match'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:286:in `token'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:262:in `lex'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:233:in `block (2 levels) in each_top_level_statement'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `loop'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `block in each_top_level_statement'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `catch'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `each_top_level_statement'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:155:in `eval_input'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:70:in `block in start'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:69:in `catch'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:69:in `start'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/bin/irb:16:in `<main>'
Run Code Online (Sandbox Code Playgroud)
看起来问题是在readline中?如何解决这个问题?根据bundle list我有这个版本的readline:
- rb-readline(0.4.2)
更新:使用rvm pkg install readline每个答案更新后出现新错误:
>/Users/me/.rvm/gems/ruby-1.9.3-p194/gems/rb-readline-0.4.2/lib/rbreadline.rb:2730:in `[]': no implicit conversion from nil to integer (TypeError)
from /Users/me/.rvm/gems/ruby-1.9.3-p194/gems/rb-readline-0.4.2/lib/rbreadline.rb:2730:in `update_line'
from /Users/me/.rvm/gems/ruby-1.9.3-p194/gems/rb-readline-0.4.2/lib/rbreadline.rb:3486:in `block in rl_redisplay'
from /Users/me/.rvm/gems/ruby-1.9.3-p194/gems/rb-readline-0.4.2/lib/rbreadline.rb:3481:in `each'
from /Users/me/.rvm/gems/ruby-1.9.3-p194/gems/rb-readline-0.4.2/lib/rbreadline.rb:3481:in `rl_redisplay'
from /Users/me/.rvm/gems/ruby-1.9.3-p194/gems/rb-readline-0.4.2/lib/rbreadline.rb:4618:in `_rl_internal_char_cleanup'
from /Users/me/.rvm/gems/ruby-1.9.3-p194/gems/rb-readline-0.4.2/lib/rbreadline.rb:4679:in `readline_internal_charloop'
from /Users/me/.rvm/gems/ruby-1.9.3-p194/gems/rb-readline-0.4.2/lib/rbreadline.rb:4743:in `readline_internal'
from /Users/me/.rvm/gems/ruby-1.9.3-p194/gems/rb-readline-0.4.2/lib/rbreadline.rb:4765:in `readline'
from /Users/me/.rvm/gems/ruby-1.9.3-p194/gems/rb-readline-0.4.2/lib/readline.rb:40:in `readline'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/input-method.rb:115:in `gets'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:139:in `block (2 levels) in eval_input'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:273:in `signal_status'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:138:in `block in eval_input'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:188:in `call'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:188:in `buf_input'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:103:in `getc'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/slex.rb:205:in `match_io'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/slex.rb:75:in `match'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:286:in `token'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:262:in `lex'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:233:in `block (2 levels) in each_top_level_statement'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `loop'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `block in each_top_level_statement'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `catch'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `each_top_level_statement'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:155:in `eval_input'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:70:in `block in start'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:69:in `catch'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/irb.rb:69:in `start'
from /Users/me/.rvm/rubies/ruby-1.9.3-p194/bin/irb:16:in `<main>'
Run Code Online (Sandbox Code Playgroud)
而且我仍然会得到旧的错误.
小智 5
很明显是 rb-readline 的问题。
我通常将 readline 安装为 rvm 包:
rvm pkg install readline
Run Code Online (Sandbox Code Playgroud)
并且不要在我的 Gemfile 中使用任何 readline 特定的内容。
您还可以看看:
| 归档时间: |
|
| 查看次数: |
713 次 |
| 最近记录: |