0

我怎么能做这样的事情?

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>'
4

2 回答 2

2

为什么不使用defined?

puts (defined?(activated_flat) ? "activated!" : "no activated")
#=> no activated
于 2012-11-28T16:57:00.150 回答
0

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

activated_flag ||= false

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

于 2012-11-28T16:57:15.763 回答