Ruby检查变量是否有长度

时间:2012-02-29 10:13:21

标签: ruby ruby-on-rails-3.1

好吧,这可能听起来像一个愚蠢的问题,但我遇到了各种各样的问题,我确信必须有一个简单的方法来做到这一点:

如果变量有长度,你如何检查ruby?

如果我使用@dvds.length?,则在没有长度时会收到错误undefined method length for ...

基本上我有一些搜索主要检索ActiveRecord:Relation,但是一两个只返回一个条目,因为它们按id搜索。我有类似的事情:

@total = @dvds.length

显示我们找到了多少。

当@dvds不包含任何长度时,我得到一个未定义方法的错误。我做了类似的事情:

if @dvds.class == 'ActiveRecord:Relation' 

解决一个错误,但这很可怕,容易出错。

必须有一种Ruby方法来检查一个变量是否有长度是否更漂亮更容易没有?

理想情况下,我正在寻找类似的东西:

@total = @dvds.length if @dvds.length

或类似的。

感谢。

1 个答案:

答案 0 :(得分:4)

您可以使用Object#respond_to?方法检查对象是否响应指定的方法:

obj.respond_to? :length # true or false