ruby 当我们运行任何rails命令时,可以做什么来修复以下错误:“'相对要求':无法加载此类文件“

vhipe2zx  于 2022-11-29  发布在  Ruby
关注(0)|答案(4)|浏览(127)

任何rails命令对我都不起作用。我通过rvm安装了几个版本的ruby。我试着用所有版本安装rails,它们都安装成功了,但是对于所有版本,每当我在我的项目目录中运行anyrails命令时,我都会遇到以下错误:

~ rails new blog
Traceback (most recent call last): 
1: from bin/rails:3:in `<main>'
bin/rails:3:in `require_relative': cannot load such file -- /Users/Am33d/Documents/config/boot (LoadError)

我尝试查找错误,但没有找到任何解决方案。
我正在使用macOS莫哈韦(10.14.6),该怎么做才能解决这个问题?

t9aqgxwy

t9aqgxwy1#

这个错误表示由于某种原因,您的config目录中没有boot.rb文件。当运行rails命令时--无论您是以bin/rails [command]还是bundle exec rails [command]运行它们,都会运行bin/rails文件。该文件通常包含一行require_relative '../config/boot。新的Rails 6应用程序中的样板bin/rails文件是:

#!/usr/bin/env ruby
begin
  load File.expand_path('../spring', __FILE__)
rescue LoadError => e
  raise unless e.message.include?('spring')
end
APP_PATH = File.expand_path('../config/application', __dir__)
require_relative '../config/boot'
require 'rails/commands'

要简单地解决这个问题,可以通过从应用程序的根目录运行touch config/boot.rb来创建一个空文件,这样就可以消 debugging 误。

ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)

require 'bundler/setup' # Set up gems listed in the Gemfile.
require 'bootsnap/setup' # Speed up boot time by caching expensive operations.

如果没有此文件,则不一定能够正确地从gemfile加载gem或使用bootsnap缓存操作。

knpiaxh1

knpiaxh12#

当我遇到这个问题时,我在尝试使用rails -s时也收到了同样的错误。
如果同样的事情发生在你身上,那是因为你的ruby版本与你的rails版本不兼容。
升级到最新的Rails版本后,错误停止了,一切都运行良好。

dwbf0jvd

dwbf0jvd3#

有点奇怪。

rails new blog应该不需要找到 Boot 文件,也不需要捆绑器。实际上,您正在尝试创建一个新项目,因此预计没有为您的项目创建Gemfile、引导或捆绑器。

所以我建议你找出正在执行的rails命令。有时bundler创建的一个rails可执行文件在$PATH环境变量中优先。
例如:$HOME目录中有一些不正确的bin/rails可执行文件。

rqdpfwrv

rqdpfwrv4#

我试图使用“rails server”构建一个应用程序,这个错误出现了。你必须确保rails版本与ruby版本匹配,即使你按照上面的答案做了(create the config/ Boot .rb paste)不起作用,那么你必须将Rails的版本更改为稳定的版本。我将在这里给出这个问题的链接,在github中有一个针对这个问题https://github.com/rails/rails/pull/43951关闭的问题
要解决这个问题,你必须将gem文件中的gem rails行替换为:

gem "rails", github: "rails/rails", branch: "7-0-stable"

对不起我的英语。

相关问题