Ruby:使用未定义的变量

时间:2012-11-28 16:54:29

标签: ruby ruby-1.9.3

我怎样才能做出这样的事情?

1.9.3p286 :006 > defined? activated_flag
 => nil 
1.9.3p286 :007 > puts (activated_flat ? "activated!" : "no activated")

我想在这里no activated看到,但我有:

NameError: undefined local variable or method `activated_flat' for main:Object
  from (irb):7
  from /Users/fguillen/.rvm/rubies/ruby-1.9.3-p286/bin/irb:16:in `<main>'

2 个答案:

答案 0 :(得分:2)

为什么不使用defined?

puts (defined?(activated_flat) ? "activated!" : "no activated")
#=> no activated

答案 1 :(得分:0)

我发现最简单的方法是添加后备初始化,如:

activated_flag ||= false

但是当我在erb部分中使用此变量时,此后备初始化看起来很难看。