Ruby 检查变量是否有长度

kak*_*bei 2 ruby ruby-on-rails-3.1

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

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

如果我使用它,当它没有长度时@dvds.length?会出现错误undefined method length for ...

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

@total = @dvds.length
Run Code Online (Sandbox Code Playgroud)

显示我们找到了多少。

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

if @dvds.class == 'ActiveRecord:Relation' 
Run Code Online (Sandbox Code Playgroud)

绕过一个错误,但这是可怕的并且容易出现更多错误。

必须有一种 Ruby 方法来检查变量是否具有长度,这样更漂亮更容易,不是吗?

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

@total = @dvds.length if @dvds.length
Run Code Online (Sandbox Code Playgroud)

或者类似的。

谢谢。

Ali*_*kau 5

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

obj.respond_to? :length # true or false
Run Code Online (Sandbox Code Playgroud)