Rails - 如何检查变量是否存在以及是否在一个语句中具有特定值

时间:2012-08-23 19:07:46

标签: ruby-on-rails ruby undefined

目前,如果它不存在,我会收到undefined local variable or method错误。

如何检查变量的值,并考虑它根本不存在。

我认为&&是合约,但是:

if defined? aaa && aaa == '123' then puts aaa end

NameError: undefined local variable or method `aaa' for main:Object

1 个答案:

答案 0 :(得分:6)

在这种情况下,您需要括号defined?(aaa),否则它会将整个表达式aaa && aaa == '123'评估为defined?(aaa && aaa == '123')。所以你的代码真的是这样做的:

if defined?(aaa && aaa == '123') # returns "expression" string, and thus true
  puts aaa # the error comes from this part, since aaa is not defined.
end