我不知道发生了什么事,这让我无毛!
我试图制作上限:部署命令工作,然后,无处不在,我收到此错误:
connection failed for: domain.com (NoMethodError: undefined method
>” for true:TrueClass)`
我根本没有编辑代码。为了确定问题的位置,我开始在deploy.rb文件中逐行删除,我意识到如果这3行中至少有一行存在,则不会发生错误。
role :web, "domain.com"
role :app, "domain.com"
role :db, "domain.com", :primary => true
然后当然它给了我关于服务器不存在的另一个错误。什么可以给我这个错误?
在收到此错误之前,我试图将此设置正确...
$:.unshift(File.expand_path('./lib', ENV['rvm_path']))
require "rvm/capistrano"
set :rvm_bin_path, "$HOME/.rvm/bin/"
set :rvm_path, "/usr/local/rvm/"
set :rvm_ruby_string, '1.9.2-p290'
set :rvm_type, :user
但如果我删除这些行并运行cap deploy:再次设置它仍会给我同样的错误。
NO IDEA是什么造成的!
答案 0 :(得分:3)
每当您看到错误说明:
undefined method > for [class]
我经常发现这是由于定义为symbol => value
在这种情况下,您的> for true:TrueClass
说,所以请尝试取消, :primary => true
如果这是罪魁祸首,请检查部署文件中的设置,或者查看您定义的符号是否实际存在/适用,或者语法是否正确。
在我的一个案例中,我有一个if
声明,如:
XXX, if :symbol > 0
在导致错误的模型中,我需要将其转换为Proc
(我扩展了一点额外的,以防其他人因为不同的原因而拥有相同的未定义方法。)