Çok aşamalı uzantıyı kullanarak Capistrano'da iki ortamım var: prod ve test.Capistrano Tanımlanmamış değişkeni Görevde denetleme
Prod.rb'de gerekli olmayan test.rb'de birkaç değişkene ihtiyacım var ve bazı görevlerimin değişken tanımlanıp tanımlanmadığını kontrol edip kullanabilmelerini istiyorum. ayarlanmamış. o ihtiyacı yok çünkü foo: herhangi bir göndermede olmazdı
set :foo, 'bar'
prod.rb:
Yani, testing.rb ben gibi bir şey olurdu. Benim görevlerinden biri olan, ben böyle bir şey yapmak istiyorum:
if defined?(foo)
# do something with foo
else
# do something without foo
end
Ama hata almaya devam:
undefined local variable or method 'foo'
görev tanımsız küresel değişkenler için test etmenin bir yolu var mı? gerekmez bütün ortamlarda
set :foo, ''
: foo değişkeni Ya böyle bir şey yapmak gerekiyor?
Bunu biraz genişletmek için: tanımlı? yöntem bir değişken (foo) yerine bir sembol (: foo) alır. Set metodu aslında uygun ruby değişkenleri yaratmaz, sadece değerleri dahili bir mağazada tutar. Bu yüzden değeri almak için getirme (: foo) kullanmanız gerekir. –
Bu işe yaradı, teşekkürler. Ruby'ye oldukça aşina oldum ve bunun gibi kolay bir çözüm olduğunu düşündüm, ancak Google beni hayal kırıklığına uğrattı ve belgeleri kaçırdım. Değişkenlerin farklı olarak ayarlandığını düşünmüştüm, bu yüzden farklı kontrol edilmeleri gerekiyordu, ancak mevcut olduğunu bilmiyorlardı. Tamamen güldüm. Tekrar teşekkürler. – Jaymon
Bu delilik! Tanımlamaya çalışıyordum? –