ActiveRecord find_or_create_by動的ファインダーメソッドを使用すると、ブロックを指定できます。ドキュメントはこれについて明確ではありませんが、ブロックは作成の場合にのみ実行され、検索の場合には実行されないようです。つまり、レコードが見つかった場合、ブロックは実行されません。私はこのコンソールコードでそれをテストしました:
User.find_or_create_by_name("An Existing Name") do |u|
puts "I'M IN THE BLOCK"
end
(何も印刷されませんでした)。どちらの場合もブロックを実行する方法はありますか?