ruby-on-rails 如何修复在生产环境中尝试运行Rails控制台时出现的“Spring不是捆绑包的一部分”问题

f8rj6qna  于 2023-04-22  发布在  Ruby
关注(0)|答案(2)|浏览(130)

我希望能够在安装了Capistrano(3)的应用程序上运行rails console
因此,我将gem 'capistrano-rails-console', require: false添加到gem文件中
将以下内容添加到deploy.rb

server 'ip', port: 2, user: 'user', roles: [:web, :app, :db], primary: true

并将以下内容添加到Capfile require 'capistrano/rails/console'
问题是cap production rails:console导致以下错误

00:00 rails:console
      01 $HOME/.rbenv/bin/rbenv exec bundle exec rails console -e production
Traceback (most recent call last):
    3: from bin/rails:7:in `<main>'
    2: from bin/rails:7:in `load'
    1: from /_some_path_/releases/20210808154555/bin/spring:14:in `<top (required)>'
/home/_user_/.rbenv/versions/2.7.2/lib/ruby/2.7.0/bundler/rubygems_integration.rb:346:in `block (2 levels) in replace_gem': spring is not part of the bundle. Add it to your Gemfile. (Gem::LoadError)

我该怎么解决这个问题?

fkvaft9z

fkvaft9z1#

您可能需要将Spring添加到Gemfile。
你能展示一下你的Gemfile吗?
如果你有类似

group :development do
  gem 'spring'

你可以把它提升到街区以上。

64jmpszr

64jmpszr2#

在迁移到Rails 6.1后,我遇到了同样的问题。我的bin/rails看起来像这样,它导致了与您相同的错误:

#!/usr/bin/env ruby
load File.expand_path('spring', __dir__)
APP_PATH = File.expand_path('../config/application', __dir__)
require_relative '../config/boot'
require 'rails/commands'

我不得不这样修改它(将第一行 Package 在救援块中):

#!/usr/bin/env ruby
begin
  load File.expand_path('spring', __dir__)
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'

相关问题