特定のレコードを返すメソッドを持つモデルMyModel
があります (以下のロジックを参照)。
def self.find_future_rec #note2
rec = find(rand(MyModel.count)+1) #note1
while rec.nil? | (rec.expdate<Date.today)
rec = find(rand(MyModel.count)+1)
end
return rec
end
クラスのすべてのレコードには、MyModel
クラスの変数expdate
がありますDate
。(これはレコードを見つけるのに恐ろしい方法であることはわかっています。これは、私自身の啓蒙といくつかのテスト コードのためのものです。)
- このメソッドは、適切なレコードを見つける前にいくつかの望ましくないレコードを反復処理しますが、返されるレコードは常に、
note 1
最初に照会されたレコードである で見つかったレコードです。ここで怠惰な割り当てが行われていますか? - 静的コンテキストでメソッドを呼び出せるように
self
atを追加する必要がありました。note2
これは正しい解釈ですか?