Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Rails上,是否有快捷方式来检查布尔定义的变量并使用其值,或者在未定义的情况下使用默认值?_Ruby On Rails_Ruby On Rails 3_Ruby On Rails 3.1_Ruby On Rails 2 - Fatal编程技术网

Ruby on rails 在Rails上,是否有快捷方式来检查布尔定义的变量并使用其值,或者在未定义的情况下使用默认值?

Ruby on rails 在Rails上,是否有快捷方式来检查布尔定义的变量并使用其值,或者在未定义的情况下使用默认值?,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,ruby-on-rails-2,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,Ruby On Rails 2,在RubyonRails3上,我尝试使用布尔变量的值,如果定义了,则使用默认值true。我该怎么写这样的东西呢 if var.defined? var else true end 提前感谢您可以: aVar ||= aVar.nil? 如果变量还没有值,它将赋值为true 如果左变量没有值,则| |=运算符将右值指定给左变量。它非常适合为变量指定默认值。阿瓦尔·尼尔?如果aVar不存在或具有nil值,则返回true。总之,它实现了您想要做的事情。您可以做到: aVar ||= aVa

在RubyonRails3上,我尝试使用布尔变量的值,如果定义了,则使用默认值true。我该怎么写这样的东西呢

if var.defined?
  var 
else
 true
end
提前感谢

您可以:

aVar ||= aVar.nil?
如果变量还没有值,它将赋值为true

如果左变量没有值,则| |=运算符将右值指定给左变量。它非常适合为变量指定默认值。阿瓦尔·尼尔?如果aVar不存在或具有nil值,则返回true。总之,它实现了您想要做的事情。

您可以做到:

aVar ||= aVar.nil?
如果变量还没有值,它将赋值为true

如果左变量没有值,则| |=运算符将右值指定给左变量。它非常适合为变量指定默认值。阿瓦尔·尼尔?如果aVar不存在或具有nil值,则返回true。总之,它实现了您想要做的事情。

您可以尝试:

if var.present?  
 var  
else  
 true  
end
您可以尝试:

if var.present?  
 var  
else  
 true  
end

这是行不通的。抛出:未定义的局部变量或main:object的方法“var”。这不起作用。抛出:未定义的局部变量或main:object的“var”方法非常感谢。你能解释一下这个是怎么工作的吗?我觉得很奇怪,这个语句并没有为main:Object抛出未定义的局部变量或方法'aVar'。对不起,昨晚这么做了。我用解释修改了答案。我惊讶的是,如果我只键入aVar.nil?在irb控制台上,它抛出NameError:未定义的局部变量或方法…,但是如果我键入aVar | |=aVar.nil?它不会扔任何东西。你对此有什么解释吗?| |=运算符将始终返回有效值,无论变量是否存在,因此它永远不会抛出错误。再见,非常感谢。你能解释一下这个是怎么工作的吗?我觉得很奇怪,这个语句并没有为main:Object抛出未定义的局部变量或方法'aVar'。对不起,昨晚这么做了。我用解释修改了答案。我惊讶的是,如果我只键入aVar.nil?在irb控制台上,它抛出NameError:未定义的局部变量或方法…,但是如果我键入aVar | |=aVar.nil?它不会扔任何东西。你对此有什么解释吗?| |=运算符将始终返回有效值,无论变量是否存在,因此它永远不会抛出错误。看见