Gaiax Advent Calendar 2016 の21日目の記事です。 ActiveRecord の find_or_create_by で苦労したので、それをまとめておきたいと思います。 まずは、以下のような状況を仮定します。 あるタスクが完了したら、その日分の TaskReport の count をインクリメントする その日分のTaskReportレコードがあれば更新する、なければ作成する CREATE TABLE `task_reports` ( `id` int(11) NOT NULL AUTO_INCREMENT, `date` date DEFAULT NULL, `count` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) task_report = TaskReport.find_or_create_by(date: Dat