{"html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Falstrocrack.hatenablog.jp%2Fentry%2F2026%2F02%2F15%2F162717\" title=\"Ruby on Rails\u306eActive Record\u306etransaction\u30e1\u30bd\u30c3\u30c9\u306e\u30cd\u30b9\u30c8\u6642\u306e\u6319\u52d5\u3092\u6df1\u6398\u308b - Alstrocrack Tech Blog\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","width":"100%","version":"1.0","url":"https://alstrocrack.hatenablog.jp/entry/2026/02/15/162717","author_url":"https://blog.hatena.ne.jp/alstrocrack/","blog_url":"https://alstrocrack.hatenablog.jp/","provider_name":"Hatena Blog","author_name":"alstrocrack","blog_title":"Alstrocrack Tech Blog","categories":["Ruby","Ruby on Rails","ActiveRecord","transaction"],"title":"Ruby on Rails\u306eActive Record\u306etransaction\u30e1\u30bd\u30c3\u30c9\u306e\u30cd\u30b9\u30c8\u6642\u306e\u6319\u52d5\u3092\u6df1\u6398\u308b","height":"190","image_url":null,"published":"2026-02-15 16:27:17","provider_url":"https://hatena.blog","description":"\u306f\u3058\u3081\u306b \u984c\u540d\u306e\u300c\u6df1\u6398\u308b\u300d\u306f\u300c\u30cd\u30b9\u30c8\u300d\u3068\u639b\u3051\u3066\u3044\u307e\u3059\u3002\u5b9f\u969b\u306e\u984c\u540d\u306f\u300cRails\u306e\u30cd\u30b9\u30c8\u3057\u305ftransaction\u306b\u304a\u3051\u308b requires_new \u306e\u6319\u52d5\u3092\u691c\u8a3c\u3059\u308b\u300d\u3068\u304b\u306e\u65b9\u304c\u8fd1\u3044\u3067\u3059\u3002 \u3055\u3066\u3001Ruby on Rails\u306eOR\u30de\u30c3\u30d1\u30fc\u3067\u3042\u308bActive Record\u306b\u306f\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u3092\u5236\u5fa1\u3059\u308b transaction \u30e1\u30bd\u30c3\u30c9\u304c\u3042\u308a\u307e\u3059\u3002 # \u5404\u7a2eRDBMS\u3067transaction\u304cBEGIN ~ COMMIT\u3055\u308c\u308b ActiveRecord::Base.transaction do user = User.create!(user_params) item = Active\u2026","type":"rich"}