在 Ruby 中对已存在的查找方法使用查找方法显示 NoMethodError

Using Find Method on an already existing Find Method in Ruby showing NoMethodError

如问题所述,我正在尝试使用 .find 方法,但我得到的是 Nil 对象的 NoMethodError

我知道这是 正常行为 这是有道理的,但是无论如何我可以改进代码以避免使用 .find 两次吗?

这是我的代码目前的样子:

@device = Device.find(:all).find{|device| device.uuid == @token.uuid}

RubyMine 正在突出显示第二种 .find 方法:

.find{|device| device.uuid == @token.uuid}

带有警告说:

Method invocation 'find' may produce 'NoMethodError'

我意识到这可能不是解决此问题的最佳方法。任何人都可以帮忙提出建议吗?也许告诉我是否通过删除第二个 .find() 我会得到相同的结果!

非常感谢所有回答。

试试这个方法

@device = Device.find(:all, :conditions => { :uuid => @token.uuid })