我怎样才能做出这样的事情?
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>'
答案 0 :(得分:2)
为什么不使用defined?
:
puts (defined?(activated_flat) ? "activated!" : "no activated")
#=> no activated
答案 1 :(得分:0)
我发现最简单的方法是添加后备初始化,如:
activated_flag ||= false
但是当我在erb
部分中使用此变量时,此后备初始化看起来很难看。