私はRuby on Railsアプリを開発中です。私の質問はRubyの構文です。Rubyの構文: 'each .. do ..'ブロックから抜け出す
私はクラスメソッドself.check
とモデルクラスがあります。それがあればeach
ブロックを破るだ(私は一度result
が真あるeach
ブロックから抜け出す/停止したい
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
をcar.name
はname
と同じです。)がの結果になるcar
を返します。どのようにRubyコードで抜け出すのですか?
私は悪いサンプルコードを提供します。私はデータベースから何かを直接見つけたり、チェックしたりしていません。私はちょうどいくつかの条件が一度満たされ、真の結果を引き起こす '車'を返すならば、 "各"ブロックから脱出する方法が必要です。 – Mellon
さて、これを改善することもできます: 'def self.check(name); self.where(:name => name).any ?;最後 ' –
最初のスニペットは '!! self.find_by_name(name)'と書くことができます。 – tokland