rake タスク内で処理を止めたい場合は return ではなく、next を利用するみたい。
January 19, 2021
こんにちは。
とある案件のコードの rake タスクにこんなコードがありまして、、、
next unless Time.zone.today.on_weekday?
next? なんじゃこりゃ。となりまして、、、
先輩「rake タスクには return じゃなくて next を使うんだよ!」
と教えてもらいました。
で、調べてみると、、、こんな記事がありました。
https://stackoverflow.com/questions/2316475/how-do-i-return-early-from-a-rake-task
いいねがたくさんついている回答いわく、
ブロックのなかでは、return は使えない(ただし例外はある)
みたいですね。なので next を使うそうです。
ただし別の箇所でメソッドを定義して、そのなかで return
を使用する、というやり方もあるみたいです。
こんなふうなコードが紹介されてました。なるほど。
task :foo do
do_something
end
def do_something
puts "startd"
return
puts "end"
end
またひとつ知識が増えてよかったです!
(了)