Ruby on railsでデータベースから1行検索し、無かったらレコードを追加したい場合、モデルのfind_or_create_by メソッドを使います。
見つかった最初の行、または新しく追加された行のデータを返します。
基本構文。
モデル.find_or_create_by([属性])
例1.Joneという名前の最初のユーザーを探し、無かったら新しいユーザーを作る。
User.find_or_create_by(first_name: 'Jone')
例2.Joneという名前の最初のユーザーを探し、無かったらDoeという性を付加して新しいユーザーを作る。
User.create_with(last_name: 'Doe').find_or_create_by(first_name: 'Jone')
例3.Joneという名前の最初のユーザーを探し、無かったらDoeという性を付加して新しいユーザーを作る。
User.find_or_create_by(first_name: 'Jone') do |user| user.last_name = "Doe" end