繁体   English   中英

Rails控制台不起作用

[英]rails console does not work

我在Windows Vista上使用Rails版本3.0.3和ruby版本1.9.2p136(2010-12-15)。 脚本控制台给我以下错误:

加载开发环境(Rails 3.0.3)C:/privat/Ruby192/lib/ruby/site_ruby/1.9.1/rbreadline.rb:2116: block in _rl_read_init_file': invalid byte sequence in UTF 8 (ArgumentError) from C:/privat/Ruby192/lib/ruby/site_ruby/1.9.1/rbreadline.rb:2114:in中的block in _rl_read_init_file': invalid byte sequence in UTF 8 (ArgumentError) from C:/privat/Ruby192/lib/ruby/site_ruby/1.9.1/rbreadline.rb:2114:in :在C block in _rl_read_init_file': invalid byte sequence in UTF 8 (ArgumentError) from C:/privat/Ruby192/lib/ruby/site_ruby/1.9.1/rbreadline.rb:2114:in C:/privat/Ruby192/lib/ruby/site_ruby/1.9.1/rbreadline.rb:2114: _rl_read_init_file' from C:/privat/Ruby192/lib/ruby/site_ruby/1.9.1/rbreadline.rb:2080:in rl_read_init_file 2500:in readline_initialize_everything' from C:/privat/Ruby192/lib/ruby/site_ruby/1.9.1/rbreadline.rb:3726:in rl_initialize from from C:/privat/Ruby192/lib/ruby/site_ruby/1.9.1/ rbreadline.rb:4720:in readline' from C:/privat/Ruby192/lib/ruby/site_ruby/1.9.1/readline.rb:40:in readline'from C:/privat/Ruby192/lib/ruby/1.9。 1 / irb / input-method.rb:115:in gets' from C:/privat/Ruby192/lib/ruby/1.9.1/irb.rb:139:in从C:/获得eval_input的块(2级) privat / Ruby192 / lib / ruby​​ / 1.9.1 / irb.rb:273:in signal_status' from C:/privat/Ruby192/lib/ruby/1.9.1/irb.rb:138:in signal_status' from C:/privat/Ruby192/lib/ruby/1.9.1/irb.rb:138:in块.rb:188:in call' from C:/privat/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:188:in buf_input'from C:/privat/Ruby192/lib/ruby/1.9 .1 / irb / ruby​​-lex.rb:103:在getc' from C:/privat/Ruby192/lib/ruby/1.9.1/irb/slex.rb:205:in match_io中从C:/ privat / Ruby192中/lib/ruby/1.9.1/irb/slex.rb:75:in match'from match' from C:/privat/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:286:in C:/privat/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:262:在lex' from C:/privat/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:233:in从C:/privat/Ruby192/lib/ruby/1.9.1/irb/ruby-lex的rb_233 lex' from C:/privat/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:233:in块(2个级别)在loop' from C:/privat/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in从C:/privat/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in在each_top_level_statement loop' from C:/privat/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in块中从C:/ privat / Ruby catch' from C:/privat/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in each_top_level_statement中 192 / lib / ruby​​ / 1.9.1 / irb.rb:155:在eval_input' from C:/privat/Ruby192/lib/ruby/1.9.1/irb.rb:70:in / privat / Ruby 192 / lib / ruby​​ / 1.9.1 / irb.rb eval_input' from C:/privat/Ruby192/lib/ruby/1.9.1/irb.rb:70:in在起始块中,从C:/ privat / Ruby192 / lib / ruby​​ / 1.9.1 / irb.rb:69:从C:/ catch' from C:/privat/Ruby192/lib/ruby/1.9.1/irb.rb:69:in privat / Ruby192 / lib / ruby​​ / 1.9.1 / irb.rb:69:从C:/开始privat / Ruby192 / lib / ruby​​ / gems / 1.9.1 / gems / railties-3.0.3 / lib / rails / commands / console.rb:44:in start' from C:/privat/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/commands/console.rb:8:in C:/privat/Ruby192/lib/ruby/gems/1.9.1/gems/railties- 3.0.3 / lib / rails / commands.rb:23:in <top (required)>' from script/rails:6:in require'from script / rails:6:in`'

我能做什么?

我遇到了同样的问题。 我花了几个小时试图修复它,重建红宝石,等等。。。对于LANG =的任何设置都失败了。

最终,我在代码中发现了初始化文件〜/ .inputrc的加载过程。

我在有问题的计算机中的$ HOME没有〜/ .inputrc ...我试图创建一个空的,并且...起作用了!

所以尝试touch ~/.inputrc

我刚刚在Rails 4.1.1上遇到了同样的问题,结果证明我的~/.inputrc文件是使用ISO-8859-1编码进行编码的。 将文件转换为UTF-8后,一切正常:

$ iconv --from-code=ISO-8859-1 --to-code=UTF-8 ~/.inputrc >out
$ mv out ~/.inputrc

要检查您的inputrc文件采用的编码方式,请使用:

$ file --mime-encoding ~/.inputrc

问题在于Ruby1.9.2在编码方面存在一些问题...您必须检查数据库驱动程序是否未给出错误。服务器是否运行? 我建议您使用Ruby187

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM