无法执行rails | railties-5.2.3 / exe / rails(LoadError)

时间:2019-04-04 06:51:30

标签: ruby-on-rails

我无法使用Command Rails启动服务器,我必须使用Command Bundle exec Rails,但是我更喜欢使用Command Rails

启动命令栏s时出错

Traceback (most recent call last):
        1: from /home/leopaul/.rbenv/versions/2.5.1/bin/rails:23:in `<main>'
/home/leopaul/.rbenv/versions/2.5.1/bin/rails:23:in `load': cannot load such file -- /home/leopaul/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/railties-5.2.3/exe/rails (LoadError)

我的rails版本是:

Rails 5.1.6.2

3 个答案:

答案 0 :(得分:0)

我认为您的计算机中安装了多个Rails版本。

有时,当您安装gem时,它也附带可执行文件/二进制文件。这些示例包括:rails,rake,rspec,pry等。但是,当您安装了多个版本的gem时,这些可执行文件就会同时存在多个版本。因此,如果要为给定的Rails应用执行这些二进制文件之一,则可能需要消除歧义,例如,一个用于rake v10.1的可执行文件或一个用于rake v10.2的可执行文件。

因此,对于大多数命令,您将需要运行bundle exec以确保您为项目运行的版本正确(并确保还从Gemfile.lock中指定的正确版本中加载了所有依赖项) )。

因此,如果您能够执行bundle exec rails s而不能执行rails s,请回答您的问题,然后尝试将rails gem重新安装到本地计算机上。

gem install rails

然后通过rails -v

检查当前版本

答案 1 :(得分:0)

我想补充一下,我没有安装rubygems。

运行sudo apt-get install rubygems解决了该问题!

答案 2 :(得分:0)

查看文档:{​​{3}}

似乎您在全局安装的是Rails 4或其他一些Rails版本,这就是您所说的“它不执行rails”的原因,因为它考虑了默认(全局rails版本)rails。当您运行bundle exec时,它会使用当前Gemfile中的rails命令,因为您的Gemfile中有rails 5,则它可以正常工作。

还要尝试为每个项目创建gemset。

以防万一,请尝试以下操作:

bundle update

然后执行

rails s

希望它会起作用:)