find_or_create_byメソッドはブロックを取れる

January 03, 2022

こんにちは、たわらです。

find_or_create_byってブロックを取れるんですね。

User.find_or_create_by!(email: "hoge@example.com") do |user|
  user.name = "hoge"
end

email で検索してレコードが存在すれば、そのオブジェクトを返却する。もし存在しなければ、引数の email とブロック内の name を使ってレコードを新規作成する。

find_or_create_by | Rails ドキュメント