我正在开发一个红宝石 on Rails应用程序。我的问题更多是关于Ruby句法。
我有一个带有类方法的模型类self.check
:
class Cars < ActiveRecord::Base
...
def self.check(name)
self.all.each do |car|
#if result is true, break out from the each block, and return the car how to...
result = SOME_CONDITION_MEET?(car) #not related with database
end
puts "outside the each block."
end
end
我想停止/摆脱each
block once the result
is true(这就是打破each
阻止如果car.name
与name
范围once)并返回car
从而导致true结果。如何在 Ruby 代码中进行突破?
你可以打破break
关键词。例如
[1,2,3].each do |i|
puts i
break
end
将输出1
。或者如果你想直接返回值,使用return
.
由于您更新了问题,因此代码如下:
class Car < ActiveRecord::Base
# …
def self.check(name)
self.all.each do |car|
return car if some_condition_met?(car)
end
puts "outside the each block."
end
end
虽然你也可以使用Array#detect
or Array#any?
为了这个目的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)