简体   繁体   中英

rails console does not work

I'm using rails Version 3.0.3 and ruby Version 1.9.2p136 (2010-12-15) on Windows Vista. Script console gives me the following error:

Loading development environment (Rails 3.0.3) C:/privat/Ruby192/lib/ruby/site_ruby/1.9.1/rbreadline.rb:2116: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 each_line' from C:/privat/Ruby192/lib/ruby/site_ruby/1.9.1/rbreadline.rb:2114:in _rl_read_init_file' from C:/privat/Ruby192/lib/ruby/site_ruby/1.9.1/rbreadline.rb:2080:in rl_read_init_file' from C:/privat/Ruby192/lib/ruby/site_ruby/1.9.1/rbreadline.rb:2500:in readline_initialize_everything' from C:/privat/Ruby192/lib/ruby/site_ruby/1.9.1/rbreadline.rb:3726:in rl_initialize' 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 block (2 levels) in eval_input' from C:/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 block in eval_input' from C:/privat/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.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:in getc' from C:/privat/Ruby192/lib/ruby/1.9.1/irb/slex.rb:205:in match_io' from C:/privat/Ruby192/lib/ruby/1.9.1/irb/slex.rb:75:in match' from C:/privat/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:286:in token' from C:/privat/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:262:in lex' from C:/privat/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:233:in block (2 levels) in each_top_level_statement' from C:/privat/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in loop' from C:/privat/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in block in each_top_level_statement' from C:/privat/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in catch' from C:/privat/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in each_top_level_statement' from C:/privat/Ruby 192/lib/ruby/1.9.1/irb.rb:155:in eval_input' from C:/privat/Ruby192/lib/ruby/1.9.1/irb.rb:70:in block in start' from C:/privat/Ruby192/lib/ruby/1.9.1/irb.rb:69:in catch' from C:/privat/Ruby192/lib/ruby/1.9.1/irb.rb:69:in start' from 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 start' from 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 `'

What can I do?

I got the same problem. I spent hours trying to fix it, rebuilding ruby, etc... For any setting of LANG= it was failing.

Finally I discovered in the code that it was during the load of the init file, that is, ~/.inputrc.

My $HOME in the problematic computer had not the ~/.inputrc... I tried to create an empty one and... worked!

So try touch ~/.inputrc

I've just encountered this same issue with rails 4.1.1, and it turned out that my ~/.inputrc file was encoded using the ISO-8859-1 encoding. After converting the file to UTF-8, everything worked fine:

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

To check what encoding your inputrc file is encoded with, use:

$ file --mime-encoding ~/.inputrc

The problem is that Ruby1.9.2 has some issues with encoding... You have to check if your db driver is not giving error.. Does your server run? I recommend you to use Ruby187

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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