Ruby on rails Rails:未定义的方法'in#u pasting?&x27;对于衬板::ANSI:Class(NoMethodError)

Ruby on rails Rails:未定义的方法'in#u pasting?&x27;对于衬板::ANSI:Class(NoMethodError),ruby-on-rails,ruby,Ruby On Rails,Ruby,我的Ubuntu 20.04机器上安装了Ruby 2.7.2和Rails 6.1.3.1。但是,当我尝试使用以下命令测试ruby命令时: irb a = 1 ruby -v bundler -v rails -v gem uninstall reline 我得到以下错误: /home/mycomputer/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/irb-1.3.5/lib/irb/ruby-lex.rb:50:inblock in-in

我的Ubuntu 20.04机器上安装了Ruby 2.7.2Rails 6.1.3.1。但是,当我尝试使用以下命令测试ruby命令时:

irb
a = 1
ruby -v
bundler -v
rails -v
gem uninstall reline
我得到以下错误:

/home/mycomputer/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/irb-1.3.5/lib/irb/ruby-lex.rb:50:in
block in-in-in-set\u-input:Reline的未定义方法


我仍在尝试修复它,但它正在工作。

该错误是由Ruby 2.7.2
设置中的gem问题引起的。但是,如果我使用
rbenv global 2.6.6
切换到另一个Ruby版本(
2.6.6
),一切似乎都正常

以下是我如何修复它的方法

gem install bundler
gem install rails -v 6.1.3.1
rbenv rehash
解决方案1

gem install bundler
gem install rails -v 6.1.3.1
rbenv rehash
由于gem附带Ruby安装,我们将使用rbenv卸载导致问题的Ruby 2.7.2版本:

rbenv uninstall 2.7.2
rbenv install 2.7.2
接下来,使用rbenv重新安装导致问题的ruby 2.7.2版本:

rbenv uninstall 2.7.2
rbenv install 2.7.2
之后,您将安装正在使用的BunderRails版本。在本例中,我的Rails版本是Rails 6.1.3.1:

gem install bundler
gem install rails -v 6.1.3.1
rbenv rehash
之后,您可以使用以下命令检查安装的ruby、bundler和rails的版本:

irb
a = 1
ruby -v
bundler -v
rails -v
gem uninstall reline
这一次,当您尝试使用
irb
再次测试时,它应该可以正常工作

解决方案2

gem install bundler
gem install rails -v 6.1.3.1
rbenv rehash
更快的方法是使用以下命令在
Ruby 2.7.2
设置中卸载gem:

irb
a = 1
ruby -v
bundler -v
rails -v
gem uninstall reline
然后重新安装:

gem install reline
注意

gem install bundler
gem install rails -v 6.1.3.1
rbenv rehash
我没有测试它来确认它是否解决了问题

就这些

我希望这有帮助