例(レール):
def blabla
@ads = ["1", "2"] if @ads.nil?
@reklame = Reklamer.find(@koder.sample)
@ads[0] = @reklame.id
if @ads[0] == @ads[1]
begin from start method from start
end
end
メソッド/アクションを最初からやり直す方法はありますか?
例(レール):
def blabla
@ads = ["1", "2"] if @ads.nil?
@reklame = Reklamer.find(@koder.sample)
@ads[0] = @reklame.id
if @ads[0] == @ads[1]
begin from start method from start
end
end
メソッド/アクションを最初からやり直す方法はありますか?
何を達成したいのかわかりませんが、ある種のループが必要なようです。このようなものはあなたが必要とすることをしますか?
def blabla
@ads ||= ["1", "1"]
# careful with comparing a string ("2") to a numeric id
while @ads[0] == @ads[1] do
@reklame = Reklamer.find(@koder.sample)
@ads[0] = @reklame.id
end
end
基本的@ads[0]
には と変わらなくなるまでリセットし続けます@ads[1]
。
キーワードを試してみてくださいretry
。このキーワードは最初から反復を再開するため、メソッドを再構築して反復を使用することを検討してください。たとえば、次のようになります。
def blabla
@ads = ["1", "2"] if @ads.nil?
@ads.each_slice do |prev_,next_|
@reklame = Reklamer.find(@koder.sample)
prev_ = @reklame.id
retry if prev_ == next_
end
end
また、キーワードredo
は現在の反復を繰り返します。