Deployment 作为执行时Capistrano异常username@servername:没有将数组隐式转换为字符串

Deployment 作为执行时Capistrano异常username@servername:没有将数组隐式转换为字符串,deployment,ruby-on-rails-5,capistrano3,Deployment,Ruby On Rails 5,Capistrano3,我正在尝试将我的应用程序推送到我的服务器上,我正在运行Rails 5.2、Ruby 2.4.6和Capistrano 3。我以前的应用程序是在服务器端Rails 4.2上运行的 当我尝试运行cap production deploy:check--trace并获取: ** Invoke deploy:check:make_linked_dirs (first_time) ** Execute deploy:check:make_linked_dirs cap aborted! SSHKit::R

我正在尝试将我的应用程序推送到我的服务器上,我正在运行Rails 5.2、Ruby 2.4.6和Capistrano 3。我以前的应用程序是在服务器端Rails 4.2上运行的

当我尝试运行
cap production deploy:check--trace
并获取:

** Invoke deploy:check:make_linked_dirs (first_time)
** Execute deploy:check:make_linked_dirs
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as username@servername: no implicit conversion of Array into String

Caused by:
TypeError: no implicit conversion of Array into String
/Users/username/.rbenv/versions/2.4.6/lib/ruby/2.4.0/pathname.rb:409:in `initialize'
/Users/username/.rbenv/versions/2.4.6/lib/ruby/2.4.0/pathname.rb:409:in `new'
/Users/username/.rbenv/versions/2.4.6/lib/ruby/2.4.0/pathname.rb:409:in `join'
/Users/username/.rbenv/versions/2.4.6/lib/ruby/gems/2.4.0/gems/capistrano-3.11.0/lib/capistrano/dsl/paths.rb:81:in `block in join_paths'
/Users/username/.rbenv/versions/2.4.6/lib/ruby/gems/2.4.0/gems/capistrano-3.11.0/lib/capistrano/dsl/paths.rb:81:in `map'
/Users/username/.rbenv/versions/2.4.6/lib/ruby/gems/2.4.0/gems/capistrano-3.11.0/lib/capistrano/dsl/paths.rb:81:in `join_paths'
/Users/username/.rbenv/versions/2.4.6/lib/ruby/gems/2.4.0/gems/capistrano-3.11.0/lib/capistrano/dsl/paths.rb:69:in `linked_files'
/Users/username/.rbenv/versions/2.4.6/lib/ruby/gems/2.4.0/gems/capistrano-3.11.0/lib/capistrano/dsl/paths.rb:73:in `linked_file_dirs'
/Users/username/.rbenv/versions/2.4.6/lib/ruby/gems/2.4.0/gems/capistrano-3.11.0/lib/capistrano/tasks/deploy.rake:81:in `block (4 levels) in <top (required)>'
/Users/username/.rbenv/versions/2.4.6/lib/ruby/gems/2.4.0/gems/sshkit-1.18.2/lib/sshkit/backends/abstract.rb:29:in `instance_exec'
/Users/username/.rbenv/versions/2.4.6/lib/ruby/gems/2.4.0/gems/sshkit-1.18.2/lib/sshkit/backends/abstract.rb:29:in `run'
/Users/username/.rbenv/versions/2.4.6/lib/ruby/gems/2.4.0/gems/sshkit-1.18.2/lib/sshkit/runners/parallel.rb:12:in `block (2 levels) in execute'
Tasks: TOP => deploy:check:make_linked_dirs
档案:

group :development do
  #Capistrano deployment gems
  gem "capistrano", "~> 3.10", require: false
  gem "capistrano-rails", "~> 1.4", require: false
  gem 'capistrano-passenger', '~> 0.2.0'
  gem 'capistrano-rvm'
部署:

# config valid for current version and patch releases of Capistrano
lock "~> 3.11.0"

set :application, "app"
set :repo_url, "git@github.com:repo.git"

set :branch, "master"

set :deploy_to, "/var/www/appfolder"

append :linked_files, "config/database.yml"
append :linked_files, %w{config/master.key}

# Default value for linked_dirs is []
append :linked_dirs, 'log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', '.bundle', 'public/system', 'public/uploads'

set :keep_releases, 5

set :migration_role, :app
Production.rb

server "servername", user: "deploy", roles: %w{app db web}

我环顾四周,但并没有看到任何关于为什么并没有将数组隐式转换为字符串的信息。我把什么东西拧进了链接的目录里了吗?如果我需要添加任何其他代码,请让我知道。我不知道该从哪里看这一点。

如果您打印变量
cap-p生产部署:检查
,您将看到变量
:linked_files=>[[“config/master.key”]]
是数组列表,而不是字符串列表

你可以换线

append :linked_files, "config/master.key"

当我查看capistrano.log时,我看到的唯一错误是:
命令:[-d~/.rvm]调试[7af8b979]在0.046秒内完成,退出状态为1(失败)。
append :linked_files, "config/master.key"