连接失败:domain.com(NoMethodError:未定义方法`>'表示true:TrueClass)

时间:2011-11-12 02:28:06

标签: ruby-on-rails ruby deployment capistrano

我不知道发生了什么事,这让我无毛!

我试图制作上限:部署命令工作,然后,无处不在,我收到此错误: 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是什么造成的!

1 个答案:

答案 0 :(得分:3)

每当您看到错误说明:

undefined method > for [class]

我经常发现这是由于定义为symbol => value

在这种情况下,您的> for true:TrueClass说,所以请尝试取消, :primary => true

如果这是罪魁祸首,请检查部署文件中的设置,或者查看您定义的符号是否实际存在/适用,或者语法是否正确。

在我的一个案例中,我有一个if声明,如:

XXX, if :symbol > 0 

在导致错误的模型中,我需要将其转换为Proc

(我扩展了一点额外的,以防其他人因为不同的原因而拥有相同的未定义方法。)