OKADA LABO

first_or_initializeメソッド

whereメソッドとともに使うことで、whereで検索した条件のレコードがあればそのレコードのインスタンスを返し、なければ新しくインスタンスを作るメソッドです。

user = User.where(nickname: "Shinbo").first_or_initialize
=> #<User id: 1, nickname: "Shinbo">

first_or_initializeではnewメソッドと同様、インスタンスを生成しただけでデータベースに保存されていません。saveメソッドでデータベースに保存するのを忘れないようにしましょう。