我无法使用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
答案 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
希望它会起作用:)