gpt4 book ai didi

ruby - 部署.rb : undefined local variable or method `home` for main:Object

转载 作者:数据小太阳 更新时间:2023-10-29 07:44:04 30 4
gpt4 key购买 nike

我知道有很多关于此错误消息的问题,但我找不到在与我相同的上下文中发生此错误的问题。

我正在尝试将以前工作的 Capistrano 配置从版本 2 迁移到 Capistrano 3。不幸的是,调用 cap production deploy --dry-run 会产生错误

cap aborted!
undefined local variable or method `home' for main:Object
/myapp/config/deploy.rb:6:in `<top (required)>'

这是 deploy.rb 的内容,直到发生错误的第 6 行:

set :user, "myuser"
set :application, "myapp"
set :domain, "mydomain"
set :repository, "git@github.com:acme/myapp.git"
set :home, "/home/myuser"
set :deploy_to, "#{home}/#{domain}"

我不太了解 Ruby,但据我所知,冒号表示这些是符号,而不是变量,并且在 Capistrano documentation 中他们使用相同的语法来定义“变量”(参见第 5 段“在 deploy.rb 中设置共享信息”)?

部署脚本在使用 Ruby 2.0.0p247 和 Capistrano 2.9.0 的 OS X 上完美运行。现在在Ruby 1.9.3p545 和Capistrano 3.1.0 的CentOS 上,出现上述错误。我对 Capfile 进行了一些更改以使其与 Capistrano 3 一起运行,但保留了 deploy.rb 不变,希望它能正常工作。

最佳答案

我认为 Capistrano 不会为您创建局部变量,但您可以自己创建:

domain = "mydomain"
home = "/home/myuser"

set :domain, domain
set :home, home
set :deploy_to, "#{home}/#{domain}"

或者,您可以使用 fetch ,对应于 set:

set :domain, "mydomain"
set :home, "/home/myuser"
set :deploy_to, "#{fetch(:home)}/#{fetch(:domain)}"

关于ruby - 部署.rb : undefined local variable or method `home` for main:Object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22614481/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com