{"id":6480,"date":"2025-09-22T10:28:09","date_gmt":"2025-09-22T10:28:09","guid":{"rendered":"https:\/\/pokecon.jp\/job\/?p=6480"},"modified":"2025-09-22T10:28:09","modified_gmt":"2025-09-22T10:28:09","slug":"rails-8-1-0-beta1%e3%81%aechangelog-active-record%ef%bc%88%e5%85%a8%e9%a0%85%e7%9b%ae%e3%83%aa%e3%83%b3%e3%82%af%e4%bb%98%e3%81%8d%ef%bc%89%ef%bd%9ctechracho-by-bps%e6%a0%aa%e5%bc%8f%e4%bc%9a","status":"publish","type":"post","link":"https:\/\/pokecon.jp\/job\/6480\/","title":{"rendered":"Rails 8.1.0.beta1\u306eChangelog: Active Record\uff08\u5168\u9805\u76ee\u30ea\u30f3\u30af\u4ed8\u304d\uff09\uff5cTechRacho by BPS\u682a\u5f0f\u4f1a\u793e"},"content":{"rendered":"\n<\/p>\n<div id=\"js-single-body\">\n<p>\u53c2\u8003: <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/releases\/tag\/v8.1.0.beta1\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Release 8.1.0.beta1 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><br \/>\u53c2\u8003: \u30b3\u30df\u30c3\u30c8\u30ea\u30b9\u30c8: <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/compare\/v8.0.2.1...v8.1.0.beta1\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Comparing v8.0.2.1&#8230;v8.1.0.beta1 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/p>\n<h3><a target=\"_blank\" id=\"ar01\" href=\"#ar01\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/commit\/6edb68791dd5c02581d49558e652fcccaf870edd\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Remove deprecated <code>:unsigned_float<\/code> and <code>:unsigned_decimal<\/code> column me\u2026 \u00b7 rails\/rails@6edb687<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<p>MySQL\u5411\u3051\u306e<code>:unsigned_float<\/code>\u304a\u3088\u3073<code>:unsigned_decimal<\/code>\u30ab\u30e9\u30e0\u30e1\u30bd\u30c3\u30c9\u3092\u524a\u9664\u3002<\/p>\n<p><em>Rafael Mendon\u00e7a Fran\u00e7a<\/em><\/p>\n<p>\u53c2\u8003: <a target=\"_blank\" href=\"http:\/\/techracho.bpsinc.jp\/hachi8833\/2024_11_15\/146485#ar25\" data-wpel-link=\"internal\" target=\"_self\">#52828<\/a><\/p>\n<h3><a target=\"_blank\" id=\"ar02\" href=\"#ar02\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/commit\/54a1dc70f2f124c2e93813e2afc69bfcb6a3cfff\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Remove deprecated <code>:retries<\/code> option for the SQLite3 adapter \u00b7 rails\/rails@54a1dc7<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>SQLite3\u30a2\u30c0\u30d7\u30bf\u3067\u975e\u63a8\u5968\u306b\u306a\u3063\u3066\u3044\u305f<code>:retries<\/code>\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u524a\u9664\u3002<\/p>\n<p><em>Rafael Mendon\u00e7a Fran\u00e7a<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<blockquote class=\"wp-embedded-content\" data-secret=\"9jW18sd6fH\">\n<p><a target=\"_blank\" href=\"https:\/\/techracho.bpsinc.jp\/hachi8833\/2025_03_17\/148847\" data-wpel-link=\"internal\" target=\"_self\">SQLite on Rails\u30b7\u30ea\u30fc\u30ba\uff0802\uff09SQLite\u3092\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u3067\u5f37\u5316\u3059\u308b\uff08\u7ffb\u8a33\uff09<\/a><\/p>\n<\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"\u201cSQLite on Rails\u30b7\u30ea\u30fc\u30ba\uff0802\uff09SQLite\u3092\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u3067\u5f37\u5316\u3059\u308b\uff08\u7ffb\u8a33\uff09\u201d \u2014 TechRacho\" src=\"https:\/\/techracho.bpsinc.jp\/hachi8833\/2025_03_17\/148847\/embed#?secret=9jW18sd6fH\" data-secret=\"9jW18sd6fH\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<h3><a target=\"_blank\" id=\"ar03\" href=\"#ar03\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54175\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Maintain AR connection pools in the background by matthewd \u00b7 Pull Request #54175 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u8a2d\u5b9a\u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u65b0\u3057\u304f\u00a0<code>keepalive<\/code>\u3001<code>max_age<\/code>\u3001<code>min_connections<\/code>\u3092\u5c0e\u5165\u3057\u3001\u6574\u5408\u6027\u306e\u305f\u3081<code>pool<\/code>\u3092<code>max_connections<\/code>\u306b\u5909\u66f4\u3002<\/p>\n<p>\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u632f\u308b\u821e\u3044\u306f\u5909\u66f4\u3055\u308c\u3066\u3044\u306a\u3044\u304c\u3001\u3053\u308c\u306b\u3088\u3063\u3066\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u30d7\u30fc\u30eb\u306e\u632f\u308b\u821e\u3044\u3092\u3088\u308a\u7d30\u304b\u304f\u5236\u5fa1\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3001<\/p>\n<p><em>Matthew Draper<\/em>,\u00a0<em>Chris AtLee<\/em>,\u00a0<em>Rachael Wright-Munn<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar04\" href=\"#ar04\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/55585\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Simplify limit validation, move to call time by skipkayhil \u00b7 Pull Request #55585 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a>\u2605<\/h3>\n<blockquote>\n<p><code>LIMIT<\/code>\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u306e\u914d\u7f6e\u3092\u3001\u30af\u30a8\u30ea\u751f\u6210\u6642\u304b\u3089<code>limit!()<\/code>\u304c\u547c\u3073\u51fa\u3055\u308c\u305f\u6642\u70b9\u306b\u5909\u66f4\u3057\u305f\u3002<\/p>\n<p><em>Hartley McGuire<\/em>,\u00a0<em>Shuyang<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar05\" href=\"#ar05\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/55551\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Add <code>ActiveRecord::CheckViolation<\/code> error class for check constraint violations by kamipo \u00b7 Pull Request #55551 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a>\u2605<\/h3>\n<blockquote>\n<p>CHECK\u5236\u7d04\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u7528\u306e<code>ActiveRecord::CheckViolation<\/code>\u30a8\u30e9\u30fc\u30af\u30e9\u30b9\u3092\u8ffd\u52a0\u3002<\/p>\n<p><em>Ryuta Kamizono<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar06\" href=\"#ar06\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/55545\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Add ActiveRecord::ExclusionViolation error class for exclusion constraint violations by kamipo \u00b7 Pull Request #55545 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a>\u2605<\/h3>\n<blockquote>\n<p>EXCLUDE\u5236\u7d04\u9055\u53cd\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b\u305f\u3081\u306e<code>ActiveRecord::ExclusionViolation<\/code>\u30a8\u30e9\u30fc\u30af\u30e9\u30b9\u3092\u8ffd\u52a0\u3002<\/p>\n<p>PostgreSQL\u3067EXCLUDE\u5236\u7d04\u306b\u9055\u53cd\u3057\u305f\u5834\u5408\u3001\u6c4e\u7528\u306e<code>ActiveRecord::StatementInvalid<\/code>\u30a8\u30e9\u30fc\u3067\u306f\u306a\u304f<code>ActiveRecord::ExclusionViolation<\/code>\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b3\u30fc\u30c9\u3067\u3053\u308c\u3089\u306e\u7279\u5b9a\u306e\u5236\u7d04\u9055\u53cd\u3092\u51e6\u7406\u3057\u3084\u3059\u304f\u306a\u308b\u3002<\/p>\n<p>\u3053\u308c\u306fUNIQUE\u5236\u7d04\u9055\u53cd\u306e<code>RecordNotUnique<\/code>\u3084FOREIGN KEY\u5236\u7d04\u9055\u53cd\u306e<code>InvalidForeignKey<\/code>\u306a\u3069\u3001\u4ed6\u306e\u5236\u7d04\u9055\u53cd\u30a8\u30e9\u30fc\u30af\u30e9\u30b9\u3068\u540c\u3058\u30d1\u30bf\u30fc\u30f3\u306b\u6cbf\u3063\u3066\u3044\u308b\u3002<\/p>\n<p><em>Ryuta Kamizono<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar07\" href=\"#ar07\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/55251\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">filter sensitive attributes in logs by that-jill \u00b7 Pull Request #55251 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>\u6a5f\u5bc6\u60c5\u5831\u6f0f\u3048\u3044\u9632\u6b62\u306e\u305f\u3081\u3001<code>filter_attributes<\/code>\u306b\u3088\u3063\u3066\u9664\u5916\u3055\u308c\u305f\u5c5e\u6027\u3092<code>filter_parameters<\/code>\u3067\u3082\u9664\u5916\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002<\/p>\n<p><em>Jill Klang<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar08\" href=\"#ar08\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/55407\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Provide a method to check current transaction&#8217;s isolation level by kirs \u00b7 Pull Request #55407 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>\u73fe\u5728\u306e\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u5206\u96e2\u30ec\u30d9\u30eb\u3092\u30c1\u30a7\u30c3\u30af\u3067\u304d\u308b<code>connection.current_transaction.isolation<\/code> API\u3092\u8ffd\u52a0\u3002<\/p>\n<p>\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u5206\u96e2\u30ec\u30d9\u30eb\u304c<code>isolation:<\/code>\u30d1\u30e9\u30e1\u30fc\u30bf\u3084<code>ActiveRecord.with_transaction_isolation_level<\/code>\u3067\u660e\u793a\u7684\u306b\u8a2d\u5b9a\u6e08\u307f\u306e\u5834\u5408\u306f\u305d\u306e\u5024\u3092\u8fd4\u3057\u3001\u305d\u308c\u4ee5\u5916\u306e\u5834\u5408\u306f<code>nil<\/code>\u3092\u8fd4\u3059\u3002<br \/>\u30cd\u30b9\u30c8\u3057\u305f\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u306f\u3001\u89aa\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u306e\u5206\u96e2\u30ec\u30d9\u30eb\u3092\u8fd4\u3059\u3002<\/p>\n<pre><code class=\"ruby\"># \u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u304c\u5b58\u5728\u3057\u306a\u3044\u5834\u5408\u306fnil\u3092\u8fd4\u3059\nUser.connection.current_transaction.isolation # =&gt; nil\n\n# \u660e\u793a\u7684\u306b\u8a2d\u5b9a\u3055\u308c\u305f\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u5206\u96e2\u30ec\u30d9\u30eb\u3092\u8fd4\u3059\nUser.transaction(isolation: :serializable) do\n  User.connection.current_transaction.isolation # =&gt; :serializable\nend\n\n# \u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u5206\u96e2\u30ec\u30d9\u30eb\u304c\u660e\u793a\u7684\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u306fnil\u3092\u8fd4\u3059\nUser.transaction do\n  User.connection.current_transaction.isolation # =&gt; nil\nend\n\n# \u30cd\u30b9\u30c8\u3057\u305f\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u306f\u89aa\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u306e\u5206\u96e2\u30ec\u30d9\u30eb\u3092\u7d99\u627f\u3059\u308b\nUser.transaction(isolation: :read_committed) do\n  User.transaction do\n    User.connection.current_transaction.isolation # =&gt; :read_committed\n  end\nend\n<\/code><\/pre>\n<p><em>Kir Shatrov<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar09\" href=\"#ar09\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/55368\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Emit a warning when <code>pg<\/code> gem <\/a><\/h3>\n<blockquote>\n<p>PostgreSQL 18\u4ee5\u4e0a\u3092\u4f7f\u3063\u3066\u3044\u308b\u3068\u304d\u306bpg gem\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u304c1.6.0\u672a\u6e80\u306e\u5834\u5408\u306f\u8b66\u544a\u3092\u8868\u793a\u3059\u308b\u3088\u3046\u306b\u3057\u305f\u3002<\/p>\n<p><em>Yasuo Honda<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<p><a target=\"_blank\" href=\"https:\/\/github.com\/ged\/ruby-pg\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\"><img decoding=\"async\" src=\"https:\/\/gh-card.dev\/repos\/ged\/ruby-pg.svg\" alt=\"ged\/ruby-pg - GitHub\"\/><\/a><\/p>\n<h3><a target=\"_blank\" id=\"ar10\" href=\"#ar10\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54167\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">[Fix #52530] Ensure all Nary children are evaluated when extracting attributes for WhereClause#merge by joshuay03 \u00b7 Pull Request #54167 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p><code>#merge<\/code>\u30af\u30a8\u30ea\u30e1\u30bd\u30c3\u30c9\u306b<code>#or<\/code>\u3084<code>#and<\/code>\u3084\u5c5e\u6027\u3092\u7d44\u307f\u5408\u308f\u305b\u305f\u3068\u304d\u306eSQL\u30af\u30a8\u30ea\u6587\u5b57\u5217\u304c\u6b63\u3057\u304f\u306a\u3089\u306a\u3044\u30d0\u30b0\u3092\u4fee\u6b63\u3002<\/p>\n<pre><code class=\"ruby\">base = Comment.joins(:post).where(user_id: 1).where(\"recent = 1\")\nputs base.merge(base.where(draft: true).or(Post.where(archived: true))).to_sql\n<\/code><\/pre>\n<p>\u4fee\u6b63\u524d:<\/p>\n<pre><code class=\"sql\">SELECT \"comments\".* FROM \"comments\"\nINNER JOIN \"posts\" ON \"posts\".\"id\" = \"comments\".\"post_id\"\nWHERE (recent = 1)\nAND (\n  \"comments\".\"user_id\" = 1\n  AND (recent = 1)\n  AND \"comments\".\"draft\" = 1\n  OR \"posts\".\"archived\" = 1\n)\n<\/code><\/pre>\n<p>\u4fee\u6b63\u5f8c:<\/p>\n<pre><code class=\"sql\">SELECT \"comments\".* FROM \"comments\"\nINNER JOIN \"posts\" ON \"posts\".\"id\" = \"comments\".\"post_id\"\nWHERE \"comments\".\"user_id\" = 1\nAND (recent = 1)\nAND (\n  \"comments\".\"user_id\" = 1\n  AND (recent = 1)\n  AND \"comments\".\"draft\" = 1\n  OR \"posts\".\"archived\" = 1\n)\n<\/code><\/pre>\n<p><em>Joshua Young<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar11\" href=\"#ar11\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/50020\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Make schema dumper to account for <code>ActiveRecord.dump_schemas<\/code> when dumping in <code>:ruby<\/code> format by fatkodima \u00b7 Pull Request #50020 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>\u30b9\u30ad\u30fc\u30de\u3092<code>:ruby<\/code>\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3067\u30c0\u30f3\u30d7\u3059\u308b\u3068\u304d\u306b\u3082<code>ActiveRecord.dump_schemas<\/code>\u3092\u8003\u616e\u3059\u308b\u3088\u3046\u30b9\u30ad\u30fc\u30de\u30c0\u30f3\u30d1\u30fc\u3092\u4fee\u6b63\uff08\u5f93\u6765\u306f<code>:sql<\/code>\u3067\u306e\u307f\u8003\u616e\u3055\u308c\u3066\u3044\u305f\uff09\u3002<\/p>\n<p><em>fatkodima<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar12\" href=\"#ar12\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/51455\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Add <code>touch<\/code> option to <code>#update_columns<\/code> and <code>#update_column<\/code> methods by moofkit \u00b7 Pull Request #51455 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p><code>update_column<\/code>\u30e1\u30bd\u30c3\u30c9\u3068<code>update_columns<\/code>\u30e1\u30bd\u30c3\u30c9\u306b<code>:touch<\/code>\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u8ffd\u52a0\u3002<\/p>\n<pre><code class=\"ruby\"># :nice\u30ab\u30e9\u30e0\u306b\u5408\u308f\u305b\u3066:updated_at\/:updated_on\u3092\u66f4\u65b0\u3059\u308b\nWill update :updated_at\/:updated_on alongside :nice column.\nuser.update_column(:nice, true, touch: true)\n\n# Will update :updated_at\/:updated_on alongside :last_ip column\nuser.update_columns(last_ip: request.remote_ip, touch: true)\n<\/code><\/pre>\n<p><em>Dmitrii Ivliev<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar13\" href=\"#ar13\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/51243\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Optimize Active Record batching further when using ranges by maximerety \u00b7 Pull Request #51243 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p><code>use_range: true<\/code>\u3092\u6307\u5b9a\u3057\u305f\u3068\u304d\u306eActive Record\u30d0\u30c3\u30c1\u51e6\u7406\uff08<code>in_batches<\/code>\uff09\u3092\u6700\u9069\u5316\u3002<\/p>\n<p>\u6539\u4fee\u306e\u7d50\u679c\u30011,000\u4e07\u4ef6\u306e\u30ec\u30b3\u30fc\u30c9\u30681\u4e07\u4ef6\u306e\u30ec\u30b3\u30fc\u30c9\u306e\u30d0\u30c3\u30c1\u3092\u542b\u3080PostgreSQL\u30c6\u30fc\u30d6\u30eb\u3067\u30c6\u30b9\u30c8\u3057\u305f\u3068\u3053\u308d\u30011,000\u500b\u306e\u30d0\u30c3\u30c1\u306e\u30ea\u30ec\u30fc\u30b7\u30e7\u30f3\u751f\u6210\u306f<code>4.8<\/code>\u500d\u9ad8\u901f\u5316\u3057\uff08<code>6.8<\/code>\u79d2 vs. <code>1.4<\/code>\u79d2)\u3001\u5e2f\u57df\u5e45\u306e\u4f7f\u7528\u91cf\u306f <code>900<\/code>\u500d\u524a\u6e1b\u3055\u308c\uff08<code>180<\/code>MB vs. <code>0.2<\/code>MB)\u3001\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306f<code>45<\/code>\u500d\u524a\u6e1b\u3055\u308c\u305f\uff08<code>490<\/code>MB vs. <code>11<\/code>MB\uff09\u3002<\/p>\n<p><em>Maxime R\u00e9ty<\/em>,\u00a0<em>fatkodima<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<p>\u53c2\u8003: Rails API <a target=\"_blank\" href=\"https:\/\/api.rubyonrails.org\/classes\/ActiveRecord\/Batches.html#method-i-in_batches\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\"><code>in_batches<\/code> &#8212; <code>ActiveRecord::Batches<\/code><span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/p>\n<h3><a target=\"_blank\" id=\"ar14\" href=\"#ar14\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/55313\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Include current character length in index and table name length error messages by joshuay03 \u00b7 Pull Request #55313 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3084\u30c6\u30fc\u30d6\u30eb\u540d\u306e\u9577\u3055\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u306e\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u306b\u3001\u73fe\u5728\u306e\u6587\u5b57\u6570\u3082\u51fa\u529b\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002<\/p>\n<p><em>Joshua Young<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar15\" href=\"#ar15\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/55293\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Add <code>rename_schema<\/code> method for PostgreSQL by tsvallender \u00b7 Pull Request #55293 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>PostgreSQL\u5411\u3051\u306e<code>rename_schema<\/code>\u30e1\u30bd\u30c3\u30c9\u3092\u8ffd\u52a0\u3002<\/p>\n<p><em>T S Vallender<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar16\" href=\"#ar16\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/55285\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Deprecated associations by fxn \u00b7 Pull Request #55285 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>\u95a2\u9023\u4ed8\u3051\u306b\u975e\u63a8\u5968\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3059\u308b<code>deprecated: true<\/code>\u3092\u5b9f\u88c5<\/p>\n<pre><code class=\"ruby\">has_many :posts, deprecated: true\n<\/code><\/pre>\n<p>\u3053\u308c\u306b\u3088\u3063\u3066\u3001Active Record\u3067<code>posts<\/code>\u95a2\u9023\u4ed8\u3051\u3092\u4f7f\u3046\u3068\u5229\u7528\u72b6\u6cc1\u304c\u30ec\u30dd\u30fc\u30c8\u304c\u51fa\u529b\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u308b\u3002<\/p>\n<p>\u30ec\u30dd\u30fc\u30c8\u306e\u30e2\u30fc\u30c9\u306f3\u7a2e\u985e\uff08<code>:warn<\/code>\u3001<code>:raise<\/code>\u3001<code>:notify<\/code>\uff09\u3042\u308a\u3001\u30d0\u30c3\u30af\u30c8\u30ec\u30fc\u30b9\u3082\u30aa\u30f3\u30aa\u30d5\u3067\u304d\u308b\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306f<code>:warn<\/code>\u30e2\u30fc\u30c9\u3067\u30d0\u30c3\u30af\u30c8\u30ec\u30fc\u30b9\u306f\u30aa\u30d5\u306b\u306a\u308b\u3002<\/p>\n<p>\u8a73\u3057\u304f\u306fRails\u30ac\u30a4\u30c9\u3092\u30c1\u30a7\u30c3\u30af\u3057\u3066\u6b32\u3057\u3044\u3002<\/p>\n<p><em>Xavier Noria<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar17\" href=\"#ar17\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/55030\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Add locale options to PostgreSQL adapter DB create by Be-ngt-oH \u00b7 Pull Request #55030 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>PostgreSQL\u30a2\u30c0\u30d7\u30bf\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u4f5c\u6210\u6642\u306b<code>locale_provider<\/code>\u30aa\u30d7\u30b7\u30e7\u30f3\u3068\u00a0<code>locale<\/code>\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u8ffd\u52a0\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002<\/p>\n<p><em>Bengt-Ove Hollaender<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar18\" href=\"#ar18\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/55200\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Use ntuples to populate row_count instead of count for Postgres by jcalvert \u00b7 Pull Request #55200 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p><code>row_count<\/code>\u306e\u5024\u3092<code>Enumerable#count<\/code>\u304b\u3089PostgreSQL\u306e<code>PG::Result#ntuples<\/code>\u306b\u5909\u66f4\u3057\u3066\u9ad8\u901f\u5316\u3057\u305f\u3002<\/p>\n<p><em>Jonathan Calvert<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar19\" href=\"#ar19\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/55196\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Fix <code>include?<\/code> on strict-loaded HABTM association by skipkayhil \u00b7 Pull Request #55196 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>strict loading\u3055\u308c\u305f<code>has_and_belongs_to_many<\/code>\u95a2\u9023\u4ed8\u3051\u306e\u4e2d\u306b\u3001\u6c38\u7d9a\u5316\u3055\u308c\u3066\u3044\u306a\u3044\u30ec\u30b3\u30fc\u30c9\u304c<code>include<\/code>\u3055\u308c\u3066\u3044\u308b\u304b\u3069\u3046\u304b\u306e\u30c1\u30a7\u30c3\u30af\u304c\u6b63\u3057\u304f\u306a\u304b\u3063\u305f\u306e\u3092\u4fee\u6b63\u3002<\/p>\n<p><em>Hartley McGuire<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar20\" href=\"#ar20\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/55176\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Add ability to change the transaction isolation for all pools within a block by eileencodes \u00b7 Pull Request #55176 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a>\u2605<\/h3>\n<blockquote>\n<p>1\u3064\u306e\u30d6\u30ed\u30c3\u30af\u5185\u306b\u3042\u308b\u3059\u3079\u3066\u306e\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u30d7\u30fc\u30eb\u306b\u3064\u3044\u3066\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u5206\u96e2\u30ec\u30d9\u30eb\u3092\u5909\u66f4\u3067\u304d\u308b\u6a5f\u80fd\u3092\u8ffd\u52a0\u3002<\/p>\n<p>\u3053\u306e\u6a5f\u80fd\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u306e\u5206\u96e2\u30ec\u30d9\u30eb\u3092\u30ea\u30af\u30a8\u30b9\u30c8\u5358\u4f4d\u3084\u30a2\u30af\u30b7\u30e7\u30f3\u5358\u4f4d\u3067\u5909\u66f4\u3059\u308b\u5fc5\u8981\u304c\u751f\u3058\u305f\u5834\u5408\u306b\u6709\u7528\u3002<\/p>\n<p><code>ActiveRecord.with_transaction_isolation_level(level) {}<\/code>\u3092around\u30d5\u30a3\u30eb\u30bf\u5185\u3084\u30df\u30c9\u30eb\u30a6\u30a7\u30a2\u5185\u3067\u547c\u3073\u51fa\u3059\u3068\u3001\u305d\u306e\u30d6\u30ed\u30c3\u30af\u5185\u3067\u30a2\u30af\u30bb\u30b9\u3055\u308c\u308b\u3059\u3079\u3066\u306e\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u30d7\u30fc\u30eb\u306b\u5bfe\u3057\u3066\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u5206\u96e2\u30ec\u30d9\u30eb\u304c\u8a2d\u5b9a\u3055\u308c\u3001\u305d\u308c\u4ee5\u5916\u306e\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u306b\u306f\u8a2d\u5b9a\u3055\u308c\u306a\u3044\u3002<\/p>\n<p>\u3053\u308c\u306f\u3001\u660e\u793a\u7684\u306a\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u3067\u3082\u6697\u9ed9\u306e\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u3067\u3082\u5229\u7528\u53ef\u80fd\u3002<\/p>\n<pre><code class=\"ruby\">ActiveRecord.with_transaction_isolation_level(:read_committed) do\n  Tag.transaction do # \u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u3092\u660e\u793a\u7684\u306b\u30aa\u30fc\u30d7\u30f3\u3059\u308b\n    Tag.create!\n  end\nend\n<\/code><\/pre>\n<pre><code class=\"ruby\">ActiveRecord.with_transaction_isolation_level(:read_committed) do\n  Tag.create! # \u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u3092\u6697\u9ed9\u3067\u30aa\u30fc\u30d7\u30f3\u3059\u308b\nend\n<\/code><\/pre>\n<p><em>Eileen M. Uchitelle<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar21\" href=\"#ar21\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54608\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">[Fix #54591] Raise an error in order dependent finder methods when the model has no order columns by joshuay03 \u00b7 Pull Request #54608 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a>\u2605<\/h3>\n<blockquote>\n<p><code>order<\/code>\u5024\u304c\u306a\u3044\u30ea\u30ec\u30fc\u30b7\u30e7\u30f3\u3067\u3001\u9806\u5e8f\u306b\u4f9d\u5b58\u3059\u308bfinder\u30e1\u30bd\u30c3\u30c9\uff08<code>#first<\/code>\u3084<code>#last<\/code>\u306a\u3069\uff09\u304c\u547c\u3073\u51fa\u3055\u308c\u3001\u304b\u3064\u305d\u306e\u30e2\u30c7\u30eb\u306b\u30d5\u30a9\u30fc\u30eb\u30d0\u30c3\u30af\u7528\u306e\u9806\u5e8f\u30ab\u30e9\u30e0\uff08<code>implicit_order_column<\/code>\u3001<code>query_constraints<\/code>\u3001<code>primary_key<\/code>\uff09\u304c\u5b58\u5728\u3057\u306a\u3044\u5834\u5408\u306b\u3001<code>ActiveRecord::MissingRequiredOrderError<\/code>\u3092raise\u3059\u308b\u3088\u3046\u306b\u5909\u66f4\u3055\u308c\u305f\u3002<\/p>\n<p>\u3053\u306e\u5909\u66f4\u306b\u3088\u3063\u3066\u3001Rails 8.1\u306b\u65b0\u3057\u3044\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u304c\u5c0e\u5165\u3055\u308c\u308b\u3002\u307e\u305f\u3001\u3053\u306e\u72b6\u6cc1\u3067\u30a8\u30e9\u30fc\u3092raise\u3057\u306a\u3044\u73fe\u5728\u306e\u632f\u308b\u821e\u3044\u306f\u975e\u63a8\u5968\u5316\u3055\u308c\u3001Rails 8.2\u3067\u8a2d\u5b9a\u30aa\u30d7\u30b7\u30e7\u30f3\u304b\u3089\u524a\u9664\u3055\u308c\u308b\u4e88\u5b9a\u3002<\/p>\n<pre><code class=\"ruby\">config.active_record.raise_on_missing_required_finder_order_columns = true\n<\/code><\/pre>\n<p><em>Joshua Young<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar22\" href=\"#ar22\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/55089\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">:class_name should be invalid in polymorphic belongs_to by fxn \u00b7 Pull Request #55089 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a>\u2605<\/h3>\n<blockquote>\n<p>\u30dd\u30ea\u30e2\u30fc\u30d5\u30a3\u30c3\u30af\u306a<code>belongs_to<\/code>\u95a2\u9023\u4ed8\u3051\u3067<code>:class_name<\/code>\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u7121\u52b9\u306b\u306a\u3063\u305f\u3002<\/p>\n<p>\u7406\u7531: \u5bfe\u8c61\u3068\u306a\u308b\u30ec\u30b3\u30fc\u30c9\u306e\u30af\u30e9\u30b9\u540d\u306f\u52d5\u7684\u3067\u3042\u308a\u3001type\u30ab\u30e9\u30e0\u306b\u4fdd\u5b58\u3055\u308c\u308b\u306e\u3067\u3001\u3053\u306e\u3088\u3046\u306a\u95a2\u9023\u4ed8\u3051\u3067<code>:class_name<\/code>\u3092\u6307\u5b9a\u3059\u308b\u306e\u306f\u7121\u610f\u5473\u3002<\/p>\n<p>\u3053\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u3001\u65e2\u5b58\u306e\u30dd\u30ea\u30e2\u30fc\u30d5\u30a3\u30c3\u30af\u95a2\u9023\u4ed8\u3051\u8a2d\u5b9a\u3067\u306f\u5358\u306b\u524a\u9664\u3055\u308c\u308b\u3002<br \/>\u5f93\u6765\u3067\u3082raise\u3059\u308b\u308f\u3051\u3067\u306f\u306a\u304b\u3063\u305f\u304c\u3001\u3044\u305a\u308c\u306b\u3057\u308d\u8a2d\u5b9a\u3068\u3057\u3066\u306f\u7121\u52b9\u3002<\/p>\n<p><em>Xavier Noria<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<p>\u3053\u306e\u6539\u4fee\u306b\u3064\u3044\u3066\u306f\u8b66\u544a\u304c\u8868\u793a\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u53c2\u8003: <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/55091\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Deprecate :class_name for polymorphic belongs_to by fxn \u00b7 Pull Request #55091 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/p>\n<h3><a target=\"_blank\" id=\"ar23\" href=\"#ar23\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/55077\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Add namespaced version of the <code>db:migrate:reset<\/code> command. by JoeDupuis \u00b7 Pull Request #55077 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>\u30de\u30eb\u30c1\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u74b0\u5883\u3067<code>db:migrate:reset<\/code>\u3092\u540d\u524d\u7a7a\u9593\u4ed8\u304d\u3067\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u3063\u305f\uff08<code>db:migrate:reset:primary<\/code>\uff09\u3002<\/p>\n<p><em>Jo\u00e9 Dupuis<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar24\" href=\"#ar24\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/55060\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Add <code>affected_rows<\/code> to <code>ActiveRecord::Result<\/code> by jenshenny \u00b7 Pull Request #55060 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p><code>ActiveRecord::Result<\/code>\u306b<code>affected_rows<\/code>\u30e1\u30bd\u30c3\u30c9\u3092\u8ffd\u52a0\u3002<\/p>\n<p><em>Jenny Shen<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<p>\u3053\u308c\u306b\u3088\u308a\u3001<code>RETURNING<\/code>\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u306a\u3044DB\u30a2\u30c0\u30d7\u30bf\u3067\u3082<code>insert_all<\/code>\u3084<code>upsert_all<\/code>\u3067\u5909\u66f4\u3055\u308c\u305f\u884c\u6570\u3092\u7d50\u679c\u304b\u3089\u53d6\u5f97\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<h3><a target=\"_blank\" id=\"ar25\" href=\"#ar25\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54951\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Enable passing retryable <code>SqlLiteral<\/code>s to <code>#where<\/code> by skipkayhil \u00b7 Pull Request #54951 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p><code>#where<\/code>\u306b\u6e21\u3059<code>SqlLiterals<\/code>\u3092<code>retryable: true<\/code>\u3067\u30ea\u30c8\u30e9\u30a4\u53ef\u80fd\u306b\u5909\u66f4\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002<\/p>\n<p><em>Hartley McGuire<\/em><\/p>\n<p><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar26\" href=\"#ar26\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54962\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Set default for primary keys in <code>insert_all<\/code>\/<code>upsert_all<\/code> by jenshenny \u00b7 Pull Request #54962 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p><code>insert_all<\/code>\u3084<code>upsert_all<\/code>\u306e\u4e3b\u30ad\u30fc\u306b\u30c7\u30d5\u30a9\u30eb\u30c8\u3092\u8a2d\u5b9a\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002<\/p>\n<p>\u5f93\u6765\u306ePostgreSQL\u3067\u306f\u3001upsert\u3067\u4e3b\u30ad\u30fc\u304cnull\u5024\u306e\u5834\u5408\u306b\u65b0\u898f\u30ec\u30b3\u30fc\u30c9\u3092\u66f4\u65b0\u304a\u3088\u3073\u633f\u5165\u3067\u304d\u306a\u304b\u3063\u305f\u3002\u4e3b\u30ad\u30fc\u3068\u3057\u3066<code>nil<\/code>\u5024\u3092<code>insert_all<\/code>\u3084<code>upsert_all<\/code>\u306b\u6e21\u3059\u3088\u3046\u306b\u3057\u305f\u3053\u3068\u3067\u3001\u30a2\u30c0\u30d7\u30bf\u3067\u6307\u5b9a\u3055\u308c\u305f\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u633f\u5165\u5024\u304c\u6697\u9ed9\u3067\u8a2d\u5b9a\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002<\/p>\n<p><em>Jenny Shen<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar27\" href=\"#ar27\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54959\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Add a load hook for <code>ActiveRecord::DatabaseConfigurations<\/code> by flavorjones \u00b7 Pull Request #54959 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p><code>ActiveRecord::DatabaseConfigurations<\/code>\u3092\u8a2d\u5b9a\u3059\u308b\u305f\u3081\u306e\u8aad\u307f\u8fbc\u307f\u30d5\u30c3\u30af\u3068\u3057\u3066<code>active_record_database_configurations<\/code>\u304c\u8ffd\u52a0\u3055\u308c\u305f\u3002<\/p>\n<p><em>Mike Dalessio<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<p>\u3053\u308c\u306f\u3001Railtie\u30a4\u30cb\u30b7\u30e3\u30e9\u30a4\u30b6\u304b\u3089\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u8a2d\u5b9a\u30cf\u30f3\u30c9\u30e9\u3092\u767b\u9332\u53ef\u80fd\u306b\u3059\u308b\u306e\u304c\u76ee\u7684\u3067\u3059\u3002<\/p>\n<h3><a target=\"_blank\" id=\"ar28\" href=\"#ar28\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54911\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Use <code>TRUE<\/code> and <code>FALSE<\/code> for booleans in SQLite by skipkayhil \u00b7 Pull Request #54911 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>SQLite\u306e\u30af\u30a8\u30ea\u3067\u30d6\u30fc\u30ea\u30a2\u30f3\u30ab\u30e9\u30e0\u306b\u5f93\u6765\u306e<code>1<\/code>\u3068<code>0<\/code>\u3067\u306f\u306a\u304f<code>TRUE<\/code>\u3068<code>FALSE<\/code>\u3092\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002<\/p>\n<p><em>Hartley McGuire<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<blockquote class=\"wp-embedded-content\" data-secret=\"hVbMm5KwDu\">\n<p><a target=\"_blank\" href=\"https:\/\/techracho.bpsinc.jp\/hachi8833\/2025_06_18\/151334\" data-wpel-link=\"internal\" target=\"_self\">Rails 8.1: \u751fSQL\u3084Arel\u306e\u30d6\u30fc\u30ea\u30a2\u30f3\u578b\u30ab\u30e9\u30e0\u3092TRUE\u3084FALSE\u3068\u6bd4\u8f03\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\uff08\u7ffb\u8a33\uff09<\/a><\/p>\n<\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"\u201cRails 8.1: \u751fSQL\u3084Arel\u306e\u30d6\u30fc\u30ea\u30a2\u30f3\u578b\u30ab\u30e9\u30e0\u3092TRUE\u3084FALSE\u3068\u6bd4\u8f03\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\uff08\u7ffb\u8a33\uff09\u201d \u2014 TechRacho\" src=\"https:\/\/techracho.bpsinc.jp\/hachi8833\/2025_06_18\/151334\/embed#?secret=hVbMm5KwDu\" data-secret=\"hVbMm5KwDu\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<h3><a target=\"_blank\" id=\"ar29\" href=\"#ar29\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54907\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Bump minimum supported SQLite to 3.23.0 by skipkayhil \u00b7 Pull Request #54907 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a>\u2605<\/h3>\n<blockquote>\n<p>SQLite\u306e\u6700\u5c0f\u30b5\u30dd\u30fc\u30c8\u30d0\u30fc\u30b8\u30e7\u30f3\u304c3.23.0\u306b\u4e0a\u304c\u3063\u305f\u3002<\/p>\n<p><em>Hartley McGuire<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar30\" href=\"#ar30\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54892\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Allow allocated Active Records to lookup associations by gmcgibbon \u00b7 Pull Request #54892 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>\u30e1\u30e2\u30ea\u4e0a\u306b\u30a2\u30ed\u30b1\u30fc\u30b7\u30e7\u30f3\u3055\u308c\u3066\u3044\u308bActive Record\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u95a2\u9023\u4ed8\u3051\u3082\u63a2\u7d22\u53ef\u80fd\u306b\u306a\u3063\u305f\u3002<\/p>\n<p>\u5f93\u6765\u306f\u3001\u30e1\u30e2\u30ea\u4e0a\u306b\u30a2\u30ed\u30b1\u30fc\u30b7\u30e7\u30f3\u3055\u308c\u3066\u3044\u308bActive Record\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u306f\u95a2\u9023\u4ed8\u3051\u30ad\u30e3\u30c3\u30b7\u30e5\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u306a\u304b\u3063\u305f\u305f\u3081\u3001\u95a2\u9023\u4ed8\u3051\u63a2\u7d22\u304c\u30af\u30e9\u30c3\u30b7\u30e5\u3057\u3066\u3044\u305f\u3002mocha\u306a\u3069\u306e\u30c6\u30b9\u30c8\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u306fstub\u53ef\u80fd\u306a\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u30e1\u30bd\u30c3\u30c9\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b\u305f\u3081\u306b<code>allocate<\/code>\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u3063\u3066\u3044\u305f\u305f\u3081\u3001\u3053\u308c\u306b\u3088\u3063\u3066\u95a2\u9023\u4ed8\u3051\u306e\u63a2\u7d22\u304c\u30c8\u30ea\u30ac\u30fc\u3055\u308c\u3066\u554f\u984c\u304c\u751f\u3058\u308b\u3053\u3068\u304c\u3042\u3063\u305f\u3002<\/p>\n<p><em>Gannon McGibbon<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar31\" href=\"#ar31\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/51100\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Encryption: allow turning on <code>support_unencrypted_data<\/code> at a per-attribute level by ghiculescu \u00b7 Pull Request #51100 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>Active Record\u6697\u53f7\u5316\u3067<code>support_unencrypted_data: true<\/code>\u3092\u5c5e\u6027\u5358\u4f4d\u3067\u8a2d\u5b9a\u3059\u308b\u6a5f\u80fd\u3092\u6539\u5584\u3002<\/p>\n<p>\u5f93\u6765\u306f<code>ActiveRecord::Encryption.config.support_unencrypted_data == true<\/code>\u304c\u8a2d\u5b9a\u6e08\u307f\u306e\u5834\u5408\u3057\u304b\u5229\u7528\u3067\u304d\u306a\u304b\u3063\u305f\u3002<br \/>\u6539\u4fee\u5f8c\u306f\u3001\u30b0\u30ed\u30fc\u30d0\u30eb\u8a2d\u5b9a\u3067\u6697\u53f7\u5316\u304c\u30aa\u30d5\u306b\u306a\u3063\u3066\u3044\u3066\u3082\u7279\u5b9a\u306e\u5c5e\u6027\u3067\u306e\u307f\u6697\u53f7\u5316\u3092\u30aa\u30d7\u30c8\u30a4\u30f3\u53ef\u80fd\u306b\u306a\u3063\u305f\u3002<\/p>\n<pre><code class=\"ruby\"># ActiveRecord::Encryption.config.support_unencrypted_data = true\nclass User <\/code><\/pre>\n<pre><code class=\"ruby\"># ActiveRecord::Encryption.config.support_unencrypted_data = false\nclass User <\/code><\/pre>\n<p><em>Alex Ghiculescu<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar32\" href=\"#ar32\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54875\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Model generator should be able to run without a database connection by flavorjones \u00b7 Pull Request #54875 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\uff08\u30ab\u30e9\u30e0\u7a2e\u5225\u306e\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u7528\uff09\u304c\u306a\u304f\u3066\u3082\u30e2\u30c7\u30eb\u3092\u751f\u6210\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002<\/p>\n<p><em>Mike Dalessio<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar33\" href=\"#ar33\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54422\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Refactor ActiveRecord Signed ID to use global <code>Rails.application.message_verifiers<\/code> by AliSepehri \u00b7 Pull Request #54422 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a>\u2605<\/h3>\n<blockquote>\n<p>\u7f72\u540d\u6e08\u307fID\u30d9\u30ea\u30d5\u30a1\u30a4\u30a2\u3092<code>Rails.application.message_verifiers<\/code>\u3067\u8a2d\u5b9a\u53ef\u80fd\u306b\u306a\u3063\u305f\u3002<\/p>\n<p>\u3053\u306e\u5909\u66f4\u306e\u524d\u306f\u3001\u7f72\u540d\u6e08\u307fID\u30d9\u30ea\u30d5\u30a1\u30a4\u30a2\u3092\u8a2d\u5b9a\u3059\u308b\u4e3b\u306a\u65b9\u6cd5\u306f\u3001\u30e2\u30c7\u30eb\u30af\u30e9\u30b9\u3054\u3068\u306b<code>signed_id_verifier<\/code>\u3092\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u3060\u3063\u305f\u3002<\/p>\n<pre><code class=\"ruby\">Post.signed_id_verifier = ActiveSupport::MessageVerifier.new(...)\nComment.signed_id_verifier = ActiveSupport::MessageVerifier.new(...)\n<\/code><\/pre>\n<p>\u3053\u306e\u3068\u304d\u958b\u767a\u8005\u304c<code>signed_id_verifier<\/code>\u3092\u8a2d\u5b9a\u3057\u3066\u3044\u306a\u304b\u3063\u305f\u5834\u5408\u3001\u30d9\u30ea\u30d5\u30a1\u30a4\u30a2\u306f<code>secret_key_base<\/code>\u304b\u3089\u6d3e\u751f\u3057\u305fsecret\u3068\u4ee5\u4e0b\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u7528\u3044\u3066\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5316\u3055\u308c\u308b\u3053\u3068\u306b\u306a\u308b\u3002<\/p>\n<pre><code class=\"ruby\">{ digest: \"SHA256\", serializer: JSON, url_safe: true }\n<\/code><\/pre>\n<p>\u3053\u306e\u305f\u3081\u3001\u3059\u3079\u3066\u306e\u30d9\u30ea\u30d5\u30a1\u30a4\u30a2\u3067\u8a2d\u5b9a\u3092\u30ed\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3\u3057\u306a\u3051\u308c\u3070\u306a\u3089\u305a\u3001\u4f5c\u696d\u304c\u9762\u5012\u306b\u306a\u3063\u3066\u3044\u305f\u3002<\/p>\n<p>\u4eca\u56de\u306e\u5909\u66f4\u306b\u3088\u3063\u3066\u3001<a target=\"_blank\" href=\"https:\/\/guides.rubyonrails.org\/v8.1\/configuring.html#config-active-record-use-legacy-signed-id-verifier\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\"><code>config.active_record.use_legacy_signed_id_verifier<\/code><span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a>\u3068\u3044\u3046\u65b0\u3057\u3044\u8a2d\u5b9a\u9805\u76ee\u304c\u5b9a\u7fa9\u3055\u308c\u308b\u3002<\/p>\n<p>\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u306e<code>:generate_and_verify<\/code>\u306e\u5834\u5408\u306f\u3001\u5f93\u6765\u306e\u632f\u308b\u821e\u3044\u3092\u7dad\u6301\u3059\u308b\u3002<br \/>\u305f\u3060\u3057<code>:verify<\/code>\u306b\u8a2d\u5b9a\u3059\u308b\u3068\u3001\u7f72\u540d\u6e08\u307fID\u30d9\u30ea\u30d5\u30a1\u30a4\u30a2\u3067<code>Rails.application.message_verifiers<\/code>\u306e\u8a2d\u5b9a\uff08\u5177\u4f53\u7684\u306b\u306f<code>Rails.application.message_verifiers[\"active_record\/signed_id\"]<\/code>\uff09\u304c\u7f72\u540d\u6e08\u307fID\u306e\u751f\u6210\u3084\u691c\u8a3c\u3067\u4f7f\u308f\u308c\u308b\u304c\u3001\u53e4\u3044\u8a2d\u5b9a\u306b\u3088\u308b\u691c\u8a3c\u3082\u5f15\u304d\u7d9a\u304d\u884c\u308f\u308c\u308b\u3002<\/p>\n<p>\u3053\u306e\u8907\u96d1\u3055\u3092\u56de\u907f\u3059\u308b\u305f\u3081\u3001\u65b0\u3057\u3044\u632f\u308b\u821e\u3044\u304c\u9069\u7528\u3055\u308c\u308b\u306e\u306f<code>signed_id_verifier_secret<\/code>\u304c\u30e2\u30c7\u30eb\u30af\u30e9\u30b9\u3084\u305d\u306e\u5148\u7956\u30af\u30e9\u30b9\u306e\u3069\u3053\u306b\u3082\u8a2d\u5b9a\u3055\u308c\u3066\u306a\u3044\u5834\u5408\u306b\u9650\u3089\u308c\u3066\u3044\u308b\u3002<br \/>\u307e\u305f\u3001<code>signed_id_verifier_secret<\/code>\u306f\u975e\u63a8\u5968\u5316\u3055\u308c\u305f\u3002\u73fe\u5728\u30e2\u30c7\u30eb\u306b<code>signed_id_verifier_secret<\/code>\u3092\u8a2d\u5b9a\u3057\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b<code>signed_id_verifier<\/code>\u306b\u5dee\u3057\u66ff\u3048\u3089\u308c\u308b\u3002<\/p>\n<pre><code class=\"ruby\"># \u5909\u66f4\u524d\nPost.signed_id_verifier_secret = \"my secret\"\n\n# \u5909\u66f4\u5f8c\nPost.signed_id_verifier = ActiveSupport::MessageVerifier.new(\"my secret\", digest: \"SHA256\", serializer: JSON, url_safe: true)\n<\/code><\/pre>\n<p>\u79fb\u884c\u3092\u5bb9\u6613\u306b\u3059\u308b\u305f\u3081\u3001<code>signed_id_verifier<\/code>\u306f<code>class_attribute<\/code>\uff08\u3064\u307e\u308a\u7d99\u627f\u53ef\u80fd\uff09\u3068\u3057\u3066\u3082\u632f\u308b\u821e\u3046\u304c\u3001<u><code>signed_id_verifier_secret<\/code>\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408<\/u>\u306b\u9650\u3089\u308c\u308b\u3002<\/p>\n<pre><code class=\"ruby\"># \u79fb\u884c\u524d\nActiveRecord::Base.signed_id_verifier = ActiveSupport::MessageVerifier.new(...)\nPost.signed_id_verifier == ActiveRecord::Base.signed_id_verifier # =&gt; false\n\n# \u79fb\u884c\u5f8c\nActiveRecord::Base.signed_id_verifier = ActiveSupport::MessageVerifier.new(...)\nPost.signed_id_verifier == ActiveRecord::Base.signed_id_verifier # =&gt; true\n\nPost.signed_id_verifier_secret = \"my secret\" # =&gt; deprecation warning\nPost.signed_id_verifier == ActiveRecord::Base.signed_id_verifier # =&gt; false\n<\/code><\/pre>\n<p>\u305f\u3060\u3057\u3001\u6700\u7d42\u7684\u306b\u306f\u5f93\u6765\u306e\u30e2\u30c7\u30eb\u3054\u3068\u306e\u30d9\u30ea\u30d5\u30a1\u30a4\u30a2\u304b\u3089<code>Rails.application.message_verifiers<\/code>\u3067\u7ba1\u7406\u3055\u308c\u308b\u7d71\u4e00\u7684\u306a\u8a2d\u5b9a\u306b\u79fb\u884c\u3059\u308b\u3053\u3068\u304c\u63a8\u5968\u3055\u308c\u3066\u3044\u308b\u3002<br \/>\u4ee5\u4e0b\u306e\u3088\u3046\u306b<code>ActiveSupport::MessageVerifier#rotate<\/code>\u3092\u4f7f\u3046\u3053\u3068\u3067\u79fb\u884c\u306e\u8ca0\u62c5\u3092\u8efd\u6e1b\u3067\u304d\u308b\u3002<\/p>\n<pre><code class=\"ruby\"># \u79fb\u884c\u524d\n# Post\u30e2\u30c7\u30eb\u56fa\u6709\u306e\u8a2d\u5b9a\u3067Post\u306e\u7f72\u540d\u6e08\u307fID\u3092\u751f\u6210\u30fb\u691c\u8a3c\nPost.signed_id_verifier = ActiveSupport::MessageVerifier.new(\"post secret\", ...)\n\n# AFTER\n# \u7d71\u4e00\u8a2d\u5b9a\u3092\u7528\u3044\u3066Post\u306e\u7f72\u540d\u6e08\u307fID\u3092\u751f\u6210\u30fb\u691c\u8a3c\nPost.signed_id_verifier = Post.signed_id_verifier.dup\n# \u7f72\u540d\u6e08\u307fID\u306e\u691c\u8a3c\u6642\u306bPost\u306e\u8a2d\u5b9a\u306b\u30d5\u30a9\u30fc\u30eb\u30d0\u30c3\u30af\u3059\u308b\nPost.signed_id_verifier.rotate(\"post secret\", ...)\n<\/code><\/pre>\n<p><em>Ali Sepehri<\/em>,\u00a0<em>Jonathan Hefner<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar34\" href=\"#ar34\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54813\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">With postgres adapter, prepend <code>structure_load_flags<\/code> instead of appending them. by AliceLoeser \u00b7 Pull Request #54813 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>PostgreSQL\u30a2\u30c0\u30d7\u30bf\u306e<code>structure_load<\/code>\u3067<code>extra_flags<\/code>\u306e\u8ffd\u52a0\u4f4d\u7f6e\u3092\u4fee\u6b63\u3002<\/p>\n<p>PostgreSQL\u3067<code>structure_load_flags<\/code>\u3092\u6307\u5b9a\u3059\u308b\u3068\u3001<code>extra_flags<\/code>\u304c\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30d5\u30e9\u30b0\u306e\u76f4\u524d\u3067\u306f\u306a\u304f\u76f4\u5f8c\u306b\u8ffd\u52a0\u3055\u308c\u3066\u3044\u305f\u305f\u3081\u3001\u8ffd\u52a0\u30d5\u30e9\u30b0\u304cPostgreSQL\u3067\u52b9\u304b\u306a\u304f\u306a\u308b\u3068\u3044\u3046\u554f\u984c\u304c\u767a\u751f\u3057\u3066\u3044\u305f\u3002<\/p>\n<p><em>Alice Loeser<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar35\" href=\"#ar35\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54679\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">activerecord: Don&#8217;t always append primary keys etc. to order conditions by issyl0 \u00b7 Pull Request #54679 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a>\u2605<\/h3>\n<blockquote>\n<p><code>implicit_order_column<\/code>\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u4e3b\u30ad\u30fc\u3084CONSTRAINT\u3092ORDER BY\u306b\u8ffd\u52a0\u3057\u306a\u3044\u6307\u5b9a\u304c\u53ef\u80fd\u306b\u306a\u3063\u305f\u3002<\/p>\n<p><code>implicit_order_column<\/code>\u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u6e21\u3059\u914d\u5217\u3067\u8907\u6570\u306e\u30ab\u30e9\u30e0\u3092\u6307\u5b9a\u3059\u308b\u5834\u5408\u3001\u672b\u5c3e\u306e\u8981\u7d20\u306b<code>nil<\/code>\u3092\u8ffd\u52a0\u3059\u308b\u3068\u3001\u4e3b\u30ad\u30fc\u304c\u9806\u5e8f\u6761\u4ef6\u306b\u8ffd\u52a0\u3055\u308c\u306a\u304f\u306a\u308b\u3002<br \/>\u3053\u308c\u306b\u3088\u308a\u3001\u751f\u6210\u3055\u308c\u305f\u30af\u30a8\u30ea\u3067\u4f7f\u308f\u308c\u308b\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u3088\u308a\u6b63\u78ba\u306b\u5236\u5fa1\u53ef\u80fd\u306b\u306a\u308b\u3002\u305f\u3060\u3057\u3001\u3053\u306e\u6a5f\u80fd\u306f\u3001\u6307\u5b9a\u3055\u308c\u305f\u30ab\u30e9\u30e0\u304c\u5b8c\u5168\u306b\u4e00\u610f\u3067\u306a\u3044\u5834\u5408\u3001API\u304c\u8aa4\u52d5\u4f5c\u3059\u308b\u30ea\u30b9\u30af\u304c\u3042\u308b\u3053\u3068\u306b\u6ce8\u610f\u304c\u5fc5\u8981\u3002<\/p>\n<p><em>Issy Long<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar36\" href=\"#ar36\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/53666\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Allow per-database schema format by tsvallender \u00b7 Pull Request #53666 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p><code>schema_format<\/code>\u3092\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30b3\u30f3\u30d5\u30a3\u30b0\u3067\u8a2d\u5b9a\u53ef\u80fd\u306b\u306a\u3063\u305f\u3002<\/p>\n<pre><code class=\"yaml\">    primary:\n      schema_format: ruby\n<\/code><\/pre>\n<p>\u3053\u308c\u306f\u3001\u30de\u30eb\u30c1\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u74b0\u5883\u306e\u30a2\u30d7\u30ea\u3067\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3054\u3068\u306b\u30b9\u30ad\u30fc\u30de\u306e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3092\u5909\u3048\u308b\u5fc5\u8981\u304c\u3042\u308b\u5834\u5408\u306b\u4fbf\u5229\u3002<\/p>\n<p><em>T S Vallender<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar37\" href=\"#ar37\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54332\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Add support for index visibility for MySQL v8.0.0+ and MariaDB v10.6.0+ by mtaner \u00b7 Pull Request #54332 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>MySQL v8.0.0\u4ee5\u964d\u3068MariaDB v10.6.0\u4ee5\u964d\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u975e\u8868\u793a\u6a5f\u80fd\u3092\u30b5\u30dd\u30fc\u30c8\u3002<\/p>\n<p>MySQL 8.0.0\u3067\u306f\u3001\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092<code>INVISIBLE<\/code>\u306b\u3059\u308b\u3053\u3068\u3067\u3001\u30af\u30a8\u30ea\u30aa\u30d7\u30c6\u30a3\u30de\u30a4\u30b6\u306b\u3088\u308b\u5229\u7528\u3092\u7121\u52b9\u5316\u3059\u308b\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u8ffd\u52a0\u3055\u308c\u305f\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u306e\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u3084\u66f4\u65b0\u3092\u7d99\u7d9a\u3057\u306a\u304c\u3089\u3001\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u30af\u30a8\u30ea\u3067\u5229\u7528\u4e0d\u53ef\u306b\u3067\u304d\u308b\u3002\u3053\u308c\u306f\u3001\u65b0\u3057\u3044<code>INVISIBLE<\/code>\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u8ffd\u52a0\u3057\u305f\u308a\u65e2\u5b58\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u524a\u9664\u3057\u305f\u308a\u3059\u308b\u524d\u306b\u3001\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u3044\u3063\u305f\u3093<code>INVISIBLE<\/code>\u306b\u3057\u3066\u30af\u30a8\u30ea\u306b\u60aa\u5f71\u97ff\u3092\u4e0e\u3048\u306a\u3044\u3088\u3046\u306b\u3059\u308b\u5834\u5408\u306b\u6709\u7528\u3002<br \/>\u8a73\u3057\u304f\u306f<a target=\"_blank\" href=\"https:\/\/dev.mysql.com\/blog-archive\/mysql-8-0-invisible-indexes\/\" rel=\"nofollow external noopener\" data-wpel-link=\"external\" target=\"_blank\" class=\"wpel-icon-right\">MySQL :: MySQL 8.0: Invisible Indexes<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a>\u3092\u53c2\u7167\u3002<\/p>\n<p>MariaDB 10.6.0\u3067\u306f\u3001\u30af\u30a8\u30ea\u3067\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u306b<code>IGNORE<\/code>\u3092\u6307\u5b9a\u3059\u308b\u5f62\u3067\u540c\u69d8\u306e\u6a5f\u80fd\u3092\u30b5\u30dd\u30fc\u30c8\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002\u8a73\u3057\u304f\u306f<a target=\"_blank\" href=\"https:\/\/mariadb.com\/docs\/server\/ha-and-performance\/optimization-and-tuning\/optimization-and-indexes\/ignored-indexes\" rel=\"nofollow external noopener\" data-wpel-link=\"external\" target=\"_blank\" class=\"wpel-icon-right\">Ignored Indexes | MariaDB Documentation<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a>\u3092\u53c2\u7167\u3002<\/p>\n<p>Active Record\u306f\u3001MySQL 8.0.0\u4ee5\u964d\u304a\u3088\u3073MariaDB 10.6.0\u4ee5\u964d\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u4f5c\u6210\u3068\u5909\u66f4\u3067\u3053\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u30b5\u30dd\u30fc\u30c8\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u30ab\u30e9\u30e0\u30e1\u30bd\u30c3\u30c9\u3084\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u30e1\u30bd\u30c3\u30c9\u306b\u65b0\u3057\u3044\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u30aa\u30d7\u30b7\u30e7\u30f3 <code>enabled: true\/false<\/code> \u3092\u6e21\u305b\u308b\u3002<\/p>\n<pre><code class=\"ruby\">add_index :users, :email, enabled: false\nenable_index :users, :email\nadd_column :users, :dob, :string, index: { enabled: false }\n\nchange_table :users do |t|\n  t.index :name, enabled: false\n  t.index :dob\n  t.disable_index :dob\n  t.column :username, :string, index: { enabled: false }\n  t.references :account, index: { enabled: false }\nend\n\ncreate_table :users do |t|\n  t.string :name, index: { enabled: false }\n  t.string :email\n  t.index :email, enabled: false\nend\n<\/code><\/pre>\n<p><em>Merve Taner<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar38\" href=\"#ar38\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54607\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Ensure <code>#reverse_order<\/code> respects <code>implicit_order_column<\/code> by joshuay03 \u00b7 Pull Request #54607 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p><code>ActiveRecord::Relation<\/code>\u306e<code>#reverse_order<\/code>\u3067\u3001<code>primary_key<\/code>\u306b\u52a0\u3048\u3066<code>implicit_order_column<\/code>\u3082\u8003\u616e\u3055\u308c\u308b\u3088\u3046\u4fee\u6b63\u3002<\/p>\n<p><em>Joshua Young<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar39\" href=\"#ar39\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54594\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Add column types to <code>ActiveRecord::Result<\/code> for SQLite3 by ankane \u00b7 Pull Request #54594 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>SQLite3\u306e\u5834\u5408\u306b<code>ActiveRecord::Result<\/code>\u3067\u30ab\u30e9\u30e0\u7a2e\u5225\u3082\u51fa\u529b\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002<\/p>\n<p><em>Andrew Kane<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar40\" href=\"#ar40\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54580\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">[Fix #53758] Raise <code>ActiveRecord::ReadOnlyError<\/code> when pessimistically locking with a readonly role by joshuay03 \u00b7 Pull Request #54580 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a>\u2605<\/h3>\n<blockquote>\n<p>\u30ed\u30fc\u30eb\u304creadonly\u306e\u72b6\u614b\u3067\u60b2\u89b3\u7684\u30ed\u30c3\u30af\uff08<code>#lock!<\/code>\u3084<code>#with_lock<\/code>\u3084<code>#exec_queries<\/code>\uff09\u3092\u8a66\u307f\u308b\u3068<code>ActiveRecord::ReadOnlyError<\/code>\u3092raise\u3059\u308b\u3088\u3046\u4fee\u6b63\u3002<\/p>\n<p><em>Joshua Young<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar41\" href=\"#ar41\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54498\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Fix sqlite3 dbconsole not working outside Rails by skipkayhil \u00b7 Pull Request #54498 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p><code>SQLite3Adapter<\/code>\u306e<code>dbconsole<\/code>\u304cRails\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5916\u3067\u52d5\u304b\u306a\u3044\u554f\u984c\u3092\u4fee\u6b63\u3002<\/p>\n<p><em>Hartley McGuire<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar42\" href=\"#ar42\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54456\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Fix migrating multiple DBs with pending migration action by gmcgibbon \u00b7 Pull Request #54456 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>\u30de\u30eb\u30c1DB\u3067<code>ActiveRecord::PendingMigration<\/code>\u30a2\u30af\u30b7\u30e7\u30f3\u304c\u52d5\u304b\u306a\u3044\u554f\u984c\u3092\u4fee\u6b63\u3002<\/p>\n<p><em>Gannon McGibbon<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar43\" href=\"#ar43\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54436\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Enable statement-cached queries to be retryable by skipkayhil \u00b7 Pull Request #54436 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u30a8\u30e9\u30fc\u767a\u751f\u6642\u306b\u51aa\u7b49\u306a\u95a2\u9023\u4ed8\u3051\u30af\u30a8\u30ea\u3092\u81ea\u52d5\u7684\u306b\u30ea\u30c8\u30e9\u30a4\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002<\/p>\n<p><em>Hartley McGuire<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar44\" href=\"#ar44\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54454\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Add <code>allow_retry<\/code> to <code>sql.active_record<\/code> by skipkayhil \u00b7 Pull Request #54454 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p><code>sql.active_record<\/code>\u306einstrumentation\u306b<code>allow_retry<\/code>\u3092\u8ffd\u52a0\u3002<\/p>\n<p>\u3053\u308c\u306b\u3088\u3063\u3066\u3001\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u30a8\u30e9\u30fc\u6642\u306b\u81ea\u52d5\u30ea\u30c8\u30e9\u30a4\u53ef\u80fd\u306a\u30af\u30a8\u30ea\u3092\u7279\u5b9a\u53ef\u80fd\u306b\u306a\u308b\u3002<\/p>\n<p><em>Hartley McGuire<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"r45\" href=\"#r45\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/53950\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Support joins in <code>update_all<\/code> for Postgresql and SQlite by byroot \u00b7 Pull Request #53950 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>PostgreSQL\u3068SQLite3\u3067\u306e<code>UPDATE<\/code>\u3068<code>JOIN<\/code>\u306e\u7d44\u307f\u5408\u308f\u305b\u3092\u6539\u5584\u3002<\/p>\n<p>\u5f93\u6765\u306f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b<code>UPDATE<\/code>\u30af\u30a8\u30ea\u3067<code>JOIN<\/code>\u53e5\u30921\u500b\u4ee5\u4e0a\u4f7f\u3046\u3068\u3001Active Record\u3067\u30b5\u30d6\u30af\u30a8\u30ea\u304c\u4f7f\u308f\u308c\u3001<code>SET<\/code>\u53e5\u5185\u3067<code>JOIN<\/code>\u3055\u308c\u305f\u30c6\u30fc\u30d6\u30eb\u3092\u53c2\u7167\u3067\u304d\u306a\u304f\u306a\u3063\u3066\u3044\u305f\u3002<\/p>\n<pre><code class=\"ruby\">Comment.joins(:post).update_all(\"title = posts.title\")\n<\/code><\/pre>\n<p>\u4fee\u6b63\u5f8c\u306f\u3001<code>LIMIT<\/code>\u3001<code>ORDER<\/code>\u3001<code>GROUP BY<\/code>\u304c\u4f7f\u308f\u308c\u3066\u3044\u306a\u3044\u9650\u308a\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002\u306a\u304a\u3001\u3053\u308c\u306fMySQL\u3067\u306f\u305a\u3063\u3068\u524d\u304b\u3089\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u305f\u3002<\/p>\n<p><em>Jean Boussier<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar46\" href=\"#ar46\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54376\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Clear AR connections in tests before forking for parallelization by flavorjones \u00b7 Pull Request #54376 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>mysql2\u30a2\u30c0\u30d7\u30bf\u306efork\u5b89\u5168\u6027\u306e\u554f\u984c\u3092\u56de\u907f\u3059\u308b\u305f\u3081\u3001\u65e2\u5b58\u306e\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u3092\u30af\u30ea\u30a2\u3059\u308b<code>ActiveSupport::Testing::Parallelization<\/code> before-fork\u30d5\u30c3\u30af\u3092\u5c0e\u5165\u3057\u305f\u3002<\/p>\n<p>\u4fee\u6b63: <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/41776\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">#41776<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/p>\n<p><em>Mike Dalessio<\/em>,\u00a0<em>Donal McBreen<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar47\" href=\"#ar47\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54366\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\"><code>PoolConfig<\/code> no longer keeps a reference to the connection class (attempt 3) by flavorjones \u00b7 Pull Request #54366 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p><code>PoolConfig<\/code>\u304c\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u30af\u30e9\u30b9\u3078\u306e\u53c2\u7167\u3092\u4fdd\u6301\u3057\u306a\u3044\u3088\u3046\u4fee\u6b63\u3055\u308c\u305f\u3002<\/p>\n<p>\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u30af\u30e9\u30b9\u3078\u306e\u53c2\u7167\u304c\u4fdd\u6301\u3055\u308c\u3066\u3044\u308b\u3068\u3001development\u30e2\u30fc\u30c9\u3067\u306e\u518d\u8aad\u307f\u8fbc\u307f\u3067\u5fae\u5999\u306a\u554f\u984c\u304c\u767a\u751f\u3057\u3066\u3044\u305f\u3002<\/p>\n<p>\u4fee\u6b63: <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/issues\/54343\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">#54343<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/p>\n<p><em>Mike Dalessio<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar48\" href=\"#ar48\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54344\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Fix active record instrumentation not thread safe: by Edouard-chin \u00b7 Pull Request #54344 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>\u975e\u540c\u671f\u30af\u30a8\u30ea\u3067instrumentation\u306e\u901a\u77e5\u304c\u9001\u4fe1\u3055\u308c\u306a\u3044\u5834\u5408\u304c\u3042\u308b\u554f\u984c\u3092\u4fee\u6b63\u3002<\/p>\n<pre><code class=\"ruby\">Post.async_count\nActiveSupport::Notifications.subscribed(-&gt;(*) { \"Will never reach here\" }) do\n  Post.count\nend\n<\/code><\/pre>\n<p>\u4e00\u5b9a\u306e\u7af6\u5408\u72b6\u614b\u3067\u975e\u540c\u671f\u30af\u30a8\u30ea\u3092\u5229\u7528\u3059\u308b\u3068\u3001\u307e\u308c\u306bActive Support\u901a\u77e5\u304c\u9001\u4fe1\u3055\u308c\u306a\u304f\u306a\u308b\u3053\u3068\u304c\u3042\u3063\u305f\u3002\u3053\u306e\u554f\u984c\u306f\u4fee\u6b63\u3055\u308c\u305f\u3002<\/p>\n<p><em>Edouard Chin<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar49\" href=\"#ar49\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54333\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Eliminate queries loading dumped model schema on Postgres by jcoleman \u00b7 Pull Request #54333 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a>\u2605<\/h3>\n<blockquote>\n<p>PostgreSQL\u3067\u30c0\u30f3\u30d7\u3057\u305f\u30b9\u30ad\u30fc\u30de\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u8aad\u307f\u8fbc\u307f\u6642\u306b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30af\u30a8\u30ea\u304c\u767a\u751f\u3057\u306a\u3044\u3088\u3046\u4fee\u6b63\u3002<\/p>\n<p>\u3053\u308c\u306b\u3088\u308a\u3001PostgreSQL\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3067\u30b9\u30ad\u30fc\u30de\u30ad\u30e3\u30c3\u30b7\u30e5\u30d5\u30a1\u30a4\u30eb\u304c\u69cb\u6210\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u3001\u8d77\u52d5\u6642\u306b\u5c5e\u6027\u30e1\u30bd\u30c3\u30c9\u3092\u5b9a\u7fa9\u3059\u308b\u3068\u304d\u306b\u578b\u30de\u30c3\u30d7\u306e\u8aad\u307f\u8fbc\u307f\u306e\u305f\u3081\u306b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u3092\u30aa\u30fc\u30d7\u30f3\u3059\u308b\u5fc5\u8981\u304c\u306a\u304f\u306a\u308b\uff08DB\u5fdc\u7b54\u304c\u4e0d\u8981\u306b\u306a\u308b\uff09\u305f\u3081\u3001\u56de\u5fa9\u529b\u304c\u5411\u4e0a\u3059\u308b\u3002<\/p>\n<p><em>James Coleman<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar50\" href=\"#ar50\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54172\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">JSON serialized attributes can return symbolized keys by matthaigh27 \u00b7 Pull Request #54172 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p><code>ActiveRecord::Coder::JSON<\/code>\u3092\u30aa\u30d7\u30b7\u30e7\u30f3\u4ed8\u304d\u3067\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5316\u53ef\u80fd\u306b\u306a\u3063\u305f\u3002<\/p>\n<p>JSON\u30b3\u30fc\u30c0\u30fc\u3092\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5316\u3059\u308b\u3068\u304d\u306b<code>ActiveRecord::Coder::JSON<\/code>\u306b<code>symbolize_names: true<\/code>\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u6e21\u305b\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002\u3053\u308c\u306b\u3088\u308a\u4ee5\u4e0b\u304c\u53ef\u80fd\u306b\u306a\u3063\u305f\u3002<\/p>\n<pre><code class=\"ruby\">serialize :config, coder: ActiveRecord::Coder::JSON.new(symbolize_names: true)\n<\/code><\/pre>\n<p><em>matthaigh27<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar51\" href=\"#ar51\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/53920\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Deprecate <code>insert_all<\/code> with unpersisted associations by Schwad \u00b7 Pull Request #53920 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a>\u2605<\/h3>\n<blockquote>\n<p>\u6c38\u7d9a\u5316\u3055\u308c\u3066\u3044\u306a\u3044\u30ec\u30b3\u30fc\u30c9\u3092\u542b\u3080\u95a2\u9023\u4ed8\u3051\u306b\u5bfe\u3059\u308b<code>insert_all<\/code>\u3084<code>upsert_all<\/code>\u304c\u975e\u63a8\u5968\u5316\u3055\u308c\u305f\u3002<\/p>\n<p>\u6c38\u7d9a\u5316\u3055\u308c\u3066\u3044\u306a\u3044\u30ec\u30b3\u30fc\u30c9\u3092\u542b\u3080\u95a2\u9023\u4ed8\u3051\u3067\u3053\u308c\u3089\u306e\u30e1\u30bd\u30c3\u30c9\u3092\u5229\u7528\u3059\u308b\u3068\u975e\u63a8\u5968\u8b66\u544a\u304c\u8868\u793a\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u3063\u305f\uff08\u6c38\u7d9a\u5316\u3055\u308c\u3066\u3044\u306a\u3044\u30ec\u30b3\u30fc\u30c9\u306f\u3053\u308c\u3089\u306e\u64cd\u4f5c\u5f8c\u306b\u524a\u9664\u3055\u308c\u308b\uff09\u3002<\/p>\n<p><em>Nick Schwaderer<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar52\" href=\"#ar52\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54298\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Make column name optional for <code>index_exists?<\/code> by aliismayilov \u00b7 Pull Request #54298 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p><code>index_exists?<\/code>\u30e1\u30bd\u30c3\u30c9\u306b\u6e21\u3059\u30ab\u30e9\u30e0\u540d\u304c\u5fc5\u9808\u3067\u306a\u304f\u306a\u3063\u305f\u3002<\/p>\n<p>\u3053\u308c\u306b\u3088\u308a\u3001<code>remove_index<\/code>\u306e\u30b7\u30b0\u30cd\u30c1\u30e3\u3067\u306f\u30ab\u30e9\u30e0\u540d\u304b\u3089\u6d3e\u751f\u3057\u305f\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u5fc5\u8981\u3068\u3057\u306a\u3044\u3053\u3068\u3068\u4e00\u8cab\u3059\u308b\u3088\u3046\u306b\u306a\u308b\u3002<\/p>\n<p><em>Ali Ismayiliov<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar53\" href=\"#ar53\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54278\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Make payload[:name] of eager loading <code>sql.active_record<\/code> to &#8220;#{model.name} Eager Load&#8221;. by zzak \u00b7 Pull Request #54278 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>eager loading\u3059\u308b\u3068\u304d\u306e<code>sql.active_record<\/code>\u901a\u77e5\u30a4\u30d9\u30f3\u30c8\u306e\u30da\u30a4\u30ed\u30fc\u30c9\u540d\u304c\u3044\u3064\u3082&#8221;SQL&#8221;\u3060\u3063\u305f\u306e\u3092<code>\"#{model.name} Eager Load\"<\/code>\u306b\u5909\u66f4\u3057\u305f\u3002<\/p>\n<p><em>zzak<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar54\" href=\"#ar54\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54243\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Enable <code>#exists?<\/code> queries to be retryable by skipkayhil \u00b7 Pull Request #54243 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p><code>#exists?<\/code>\u30af\u30a8\u30ea\uff08\u51aa\u7b49\uff09\u3092\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u30a8\u30e9\u30fc\u3067\u81ea\u52d5\u30ea\u30c8\u30e9\u30a4\u53ef\u80fd\u306b\u3057\u305f\u3002<\/p>\n<p><em>Hartley McGuire<\/em>,\u00a0<em>classidied<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar55\" href=\"#ar55\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/54231\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Fix inconsistency between <code>delete_all<\/code> &amp; <code>update_all<\/code> allowed methods: by Edouard-chin \u00b7 Pull Request #54231 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a>\u2605<\/h3>\n<blockquote>\n<p><code>update_all<\/code>\u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u306a\u3044\u30e1\u30bd\u30c3\u30c9\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u304c\u975e\u63a8\u5968\u5316\u3055\u308c\u305f\u3002<\/p>\n<p><code>update_all<\/code>\u306e\u30af\u30a8\u30ea\u306b<code>WITH<\/code>\u3001<code>WITH RECURSIVE<\/code>\u3001<code>DISTINCT<\/code>\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u975e\u63a8\u5968\u8b66\u544a\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002\u3053\u308c\u3089\u306e\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u306f\u3053\u308c\u307e\u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u304a\u3089\u305a\u3001SQL\u30af\u30a8\u30ea\u751f\u6210\u6642\u306b\u7121\u8996\u3055\u308c\u3066\u3044\u305f\u3002<\/p>\n<p>\u3053\u308c\u3089\u306f\u3001\u4eca\u5f8c\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u308bRails\u3067\u306f\u30a8\u30e9\u30fc\u306b\u306a\u308b\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u306a\u3044\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u3067\u30a8\u30e9\u30fc\u3092\u767a\u751f\u3059\u308b<code>delete_all<\/code>\u306e\u632f\u308b\u821e\u3044\u3068\u4e00\u8cab\u3059\u308b\u3088\u3046\u306b\u306a\u308b\u3002<\/p>\n<p><em>Edouard Chin<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar56\" href=\"#ar56\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/53281\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Sort table columns by name when dumping schema by jduff \u00b7 Pull Request #53281 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p><code>schema.rb<\/code>\u5185\u306e\u30c6\u30fc\u30d6\u30eb\u30ab\u30e9\u30e0\u540d\u304c\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8\u9806\u3067\u30bd\u30fc\u30c8\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002<\/p>\n<p>\u5f93\u6765\u306f\u4f5c\u6210\u9806\u3067\u30bd\u30fc\u30c8\u3055\u308c\u3066\u3044\u305f\u305f\u3081\u3001\u540c\u4e00\u306e\u30c6\u30fc\u30d6\u30eb\u30922\u3064\u306e\u30d6\u30e9\u30f3\u30c1\u3067\u540c\u6642\u306b\u5909\u66f4\u3059\u308b\u3068\u30b3\u30f3\u30d5\u30ea\u30af\u30c8\u3057\u304c\u3061\u3060\u3063\u305f\u3002<\/p>\n<p><em>John Duff<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar57\" href=\"#ar57\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/53797\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Introduce versions formatter for the schema dumper by fatkodima \u00b7 Pull Request #53797 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>\u30b9\u30ad\u30fc\u30de\u30c0\u30f3\u30d1\u30fc\u7528\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u30d5\u30a9\u30fc\u30de\u30c3\u30bf\u3092\u5c0e\u5165\u3002<\/p>\n<p>\u30b9\u30ad\u30fc\u30de\u30c0\u30f3\u30d1\u30fc\u304c<code>structure.sql<\/code>\u30d5\u30a1\u30a4\u30eb\u5185\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831\u3092\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3059\u308b\u65b9\u6cd5\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u53ef\u80fd\u306b\u306a\u3063\u305f\u3002\u73fe\u5728\u3001\u30d0\u30fc\u30b8\u30e7\u30f3\u306f\u5358\u7d14\u306b\u964d\u9806\u3067\u30bd\u30fc\u30c8\u3055\u308c\u308b\u3002<br \/>\u5927\u898f\u6a21\u306a\u30c1\u30fc\u30e0\u3067\u306f\u3001\u3053\u306e\u305f\u3081\u30ea\u30b9\u30c8\u306e\u4e0a\u4f4d\u4ed8\u8fd1\u3067\u591a\u304f\u306e\u30de\u30fc\u30b8\u7af6\u5408\u304c\u767a\u751f\u3059\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u3002<\/p>\n<p>\u30ab\u30b9\u30bf\u30e0\u30d5\u30a9\u30fc\u30de\u30c3\u30bf\u306b\u30ab\u30b9\u30bf\u30e0\u30bd\u30fc\u30c8\u30ed\u30b8\u30c3\u30af\uff08\u4f8b\uff1a\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u30cf\u30c3\u30b7\u30e5\u5024\u306b\u3088\u308b\u30bd\u30fc\u30c8\uff09\u3092\u8ffd\u52a0\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u3001\u7af6\u5408\u306e\u6570\u3092\u5927\u5e45\u306b\u524a\u6e1b\u53ef\u80fd\u306b\u306a\u308b\u3002<\/p>\n<p><em>fatkodima<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar58\" href=\"#ar58\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/53946\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Allow to tag serialized attributes as comparable by byroot \u00b7 Pull Request #53946 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>\u30b7\u30ea\u30a2\u30e9\u30a4\u30ba\u3055\u308c\u305f\u5c5e\u6027\u306b<code>comparable: true<\/code>\u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u3067<code>==<\/code>\u3067\u6bd4\u8f03\u53ef\u80fd\u306b\u306a\u3063\u305f\u3002<\/p>\n<p>\u30b7\u30ea\u30a2\u30e9\u30a4\u30ba\u3055\u308c\u305f\u5c5e\u6027\u3092\u6271\u3046\u3068\u304d\u306b\u3001\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30b7\u30ea\u30a2\u30e9\u30a4\u30ba\u3055\u308c\u305f\u8868\u73fe\u304c\u6642\u9593\u306e\u7d4c\u904e\u3068\u3068\u3082\u306b\u5909\u5316\u3059\u308b\u3068\u3044\u3046\u554f\u984c\u304c\u751f\u3058\u3084\u3059\u3044\u3002\u3053\u308c\u306f\u3001\u3042\u308b\u30b7\u30ea\u30a2\u30e9\u30a4\u30b6\u304b\u3089\u5225\u306e\u30b7\u30ea\u30a2\u30e9\u30a4\u30b6\u306b\u79fb\u884c\u3059\u308b\u5834\u5408\uff08\u4f8b: YAML\u2192JSON\u3084msgpack\uff09\u3001\u307e\u305f\u306f\u5229\u7528\u3059\u308b\u30b7\u30ea\u30a2\u30e9\u30a4\u30b6\u306e\u51fa\u529b\u304c\u5fae\u5999\u306b\u5909\u66f4\u3055\u308c\u305f\u5834\u5408\u306b\u767a\u751f\u3059\u308b\u3002<\/p>\n<p>\u305f\u3068\u3048\u3070libyam \u306f\u4ee5\u524d\u306f\u672b\u5c3e\u306b\u4f59\u5206\u306a\u7a7a\u767d\u304c\u542b\u307e\u308c\u3066\u3044\u305f\u304c\u3001\u6700\u8fd1\u4fee\u6b63\u3055\u308c\u305f\u3002<\/p>\n<p>\u3053\u306e\u3088\u3046\u306a\u3053\u3068\u304c\u8d77\u3053\u308b\u3068\u3001\u5b9f\u969b\u306b\u306f\u5909\u66f4\u3055\u308c\u3066\u3044\u306a\u3044\u30ec\u30b3\u30fc\u30c9\u304c\u5909\u66f4\u3055\u308c\u305f\u3068\u5831\u544a\u3055\u308c\u308b\u30ec\u30b3\u30fc\u30c9\u304c\u591a\u6570\u767a\u751f\u3057\u3001\u826f\u304f\u3066\u3082\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3078\u306e\u66f8\u304d\u8fbc\u307f\u56de\u6570\u304c\u5897\u52a0\u3057\u3001\u6700\u60aa\u306e\u5834\u5408\u306f\u5384\u4ecb\u306a\u30d0\u30b0\u3068\u306a\u308b\u3002<\/p>\n<p>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30c7\u30b7\u30ea\u30a2\u30e9\u30a4\u30ba\u3055\u308c\u305f\u8868\u73fe\u3092\u6bd4\u8f03\u3059\u308b\u3053\u3068\u304c\u89e3\u6c7a\u7b56\u3068\u306a\u308b\u304c\u3001Active Record\u306f\u30c7\u30b7\u30ea\u30a2\u30e9\u30a4\u30ba\u3055\u308c\u305f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u6709\u52b9\u306a<code>==<\/code>\u30e1\u30bd\u30c3\u30c9\u304c\u5e38\u306b\u5b58\u5728\u3059\u308b\u3053\u3068\u3092\u5f53\u3066\u306b\u3067\u304d\u306a\u3044\u3002\u305d\u306e\u305f\u3081\u3001\u3053\u306e\u65b0\u6a5f\u80fd\u306f\u30aa\u30d7\u30c8\u30a4\u30f3\u5f62\u5f0f\u3068\u306a\u3063\u3066\u304a\u308a\u3001\u6307\u5b9a\u3057\u306a\u3044\u3068\u6709\u52b9\u306b\u306a\u3089\u306a\u3044\u3002<\/p>\n<pre><code class=\"ruby\">serialize :config, type: Hash, coder: JSON, comparable: true\n<\/code><\/pre>\n<p><em>Jean Boussier<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar59\" href=\"#ar59\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/53838\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Changing column nullability does not change default function by coding-chimp \u00b7 Pull Request #53838 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>MySQL\u3067\u3001\u30ab\u30e9\u30e0\u306eNULL\u8a31\u5bb9\u3092\u5909\u66f4\u3057\u3066\u3082\u30c7\u30d5\u30a9\u30eb\u30c8\u95a2\u6570\uff08\u4f8b: <code>created_at \u306e (now())<\/code>\uff09\u304c\u6b63\u3057\u304f\u66f4\u65b0\u3055\u308c\u306a\u3044\u554f\u984c\u3092\u4fee\u6b63\u3002<\/p>\n<p><em>Bastian Bartmann<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar60\" href=\"#ar60\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/53827\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Support loading SQLite3 extensions with <code>config\/database.yml<\/code> by flavorjones \u00b7 Pull Request #53827 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>SQLite\u62e1\u5f35\u3092<code>config\/database.yml<\/code>\u30d5\u30a1\u30a4\u30eb\u3067\u8a2d\u5b9a\u53ef\u80fd\u306b\u306a\u3063\u305f\u3002<\/p>\n<p>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u8a2d\u5b9a\u3067<code>extensions:<\/code>\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u4f7f\u3046\u3053\u3068\u3067SQLite\u62e1\u5f35\u6a5f\u80fd\u3092\u8aad\u307f\u8fbc\u3081\u308b\u3088\u3046\u306b\u306a\u3063\u305f\uff08sqlite3&gt;= v2.4.0\u304c\u5fc5\u8981\uff09\u3002\u914d\u5217\u306e\u30e1\u30f3\u30d0\u30fc\u306b\u306f\u3001\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u306e\u30d1\u30b9\u3001\u307e\u305f\u306f\u300c.to_path\u300d\u306b\u5fdc\u7b54\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u540d\u3092\u6307\u5b9a\u53ef\u80fd\u3002<\/p>\n<pre><code class=\"yaml\">development:\n  adapter: sqlite3\n  extensions:\n    - SQLean::UUID                     # `.to_path`\u306b\u5fdc\u7b54\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u540d\n    - .sqlpkg\/nalgeon\/crypto\/crypto.so # \u307e\u305f\u306f\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u30d1\u30b9\n    -     # \u307e\u305f\u306f\u30d1\u30b9\u3092\u8fd4\u3059Ruby\u30b3\u30fc\u30c9\n<\/code><\/pre>\n<p><em>Mike Dalessio<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar61\" href=\"#ar61\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/53783\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\"><code>AR::Middleware::ShardSelector<\/code> support for granular database connection switching by flavorjones \u00b7 Pull Request #53783 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p><code>ActiveRecord::Middleware::ShardSelector<\/code>\u3067\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u306e\u5207\u308a\u66ff\u3048\u3092\u304d\u3081\u7d30\u304b\u304f\u6307\u5b9a\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002<\/p>\n<p><code>config.active_record.shard_selector<\/code>\u306b\u65b0\u3057\u304f<code>class_name:<\/code>\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u5c0e\u5165\u3055\u308c\u305f\u3002\u3053\u308c\u306b\u3088\u308a\u3001<code>ShardSelector<\/code>\u30df\u30c9\u30eb\u30a6\u30a7\u30a2\u306b\u3088\u3063\u3066\u5207\u308a\u66ff\u3048\u3089\u308c\u308b\u62bd\u8c61\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u30af\u30e9\u30b9\u3092\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u6307\u5b9a\u53ef\u80fd\u306b\u306a\u308b\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30af\u30e9\u30b9\u306f <code>ActiveRecord::Base<\/code>\u3002<\/p>\n<p>\u305f\u3068\u3048\u3070\u3001\u4ee5\u4e0b\u306e\u30b3\u30f3\u30d5\u30a3\u30b0\u306f\u30b7\u30e3\u30fc\u30c9\u3092<code>AnimalsRecord.connected_to<\/code>\u3067\u5207\u308a\u66ff\u3048\u308b\u3088\u3046<code>ShardSelector<\/code>\u30df\u30c9\u30eb\u30a6\u30a7\u30a2\u306b\u6307\u793a\u3059\u308b\u3002<\/p>\n<pre><code class=\"ruby\">config.active_record.shard_selector = { class_name: \"AnimalsRecord\" }\n<\/code><\/pre>\n<p><em>Mike Dalessio<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar62\" href=\"#ar62\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/45943\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Reset AR::Relation in bulk insert and upsert methods by quadule \u00b7 Pull Request #45943 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a>\u2605<\/h3>\n<blockquote>\n<p><code>insert_all<\/code>\u3084<code>upsert_all<\/code>\u306e\u5b9f\u884c\u5f8c\u306b\u30ea\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u30ea\u30bb\u30c3\u30c8\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002<\/p>\n<p>\u4e00\u62ec\u5b9f\u884c\u3059\u308b<code>insert_all<\/code>\u3084<code>upsert_all<\/code>\u3092\u30ea\u30ec\u30fc\u30b7\u30e7\u30f3\u306b\u5bfe\u3057\u3066\u4f7f\u3046\u5834\u5408\u306f\u3001<code>reset<\/code> \u3092\u547c\u3073\u51fa\u3059\u3088\u3046\u306b\u306a\u3063\u305f\u3002\u3053\u308c\u306b\u3088\u308a\u3001<code>update_all<\/code>\u306e\u632f\u308b\u821e\u3044\u3068\u4e00\u81f4\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002<\/p>\n<p><em>Milo Winningham<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar63\" href=\"#ar63\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/53790\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Use <code>_N<\/code> as a parallel tests databases suffixes by fatkodima \u00b7 Pull Request #53790 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>\u30d1\u30e9\u30ec\u30eb\u30c6\u30b9\u30c8\u3067\u4f7f\u3046\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u540d\u306e\u30b5\u30d5\u30a3\u30c3\u30af\u30b9\u3092\u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2\u306e<code>_N<\/code>\u306b\u5909\u66f4\u3057\u305f\u3002<\/p>\n<p>\u5909\u66f4\u524d\u306f\u30cf\u30a4\u30d5\u30f3\u306e<code>-N<\/code>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u540d\u306e\u304c\u30b5\u30d5\u30a3\u30c3\u30af\u30b9\u3068\u3057\u3066\u4f7f\u308f\u308c\u3066\u3044\u305f\u304c\u3001\u3053\u308c\u306f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u540d\u3067\u30cf\u30a4\u30d5\u30f3\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u306a\u3044\u4e00\u90e8\u306eRDBMS\u3067\u554f\u984c\u3092\u751f\u3058\u308b\u3053\u3068\u304c\u3042\u308b\u3002<\/p>\n<p><em>fatkodima<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar64\" href=\"#ar64\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/53672\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Maintain connection verification for 2 seconds after use by matthewd \u00b7 Pull Request #53672 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u304c\u76f4\u8fd1\uff08\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f2\u79d2\u9593\uff09\u691c\u8a3c\u6e08\u307f\u3067\u3042\u308b\u3068\u3044\u3046\u60c5\u5831\u3092\u7dad\u6301\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002\u3053\u308c\u306b\u3088\u308a\u30011\u56de\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u3067\u518d\u691c\u8a3c\u3092\u7e70\u308a\u8fd4\u3059\u306e\u3092\u907f\u3051\u3089\u308c\u308b\u3002<\/p>\n<p>\u3053\u306e\u6539\u4fee\u306b\u3088\u3063\u3066Rails 7.1\u306e\u3068\u304d\u3068\u540c\u69d8\u306e\u691c\u8a3c\u983b\u5ea6\u304c\u518d\u73fe\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u308b\u3002\u3064\u307e\u308a\u30ea\u30af\u30a8\u30b9\u30c8\u671f\u9593\u4e2d\u306f\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u304c\u7dad\u6301\u3055\u308c\u3001\u305d\u306e\u9593\u306e\u691c\u8a3c\u306f1\u56de\u3067\u6e08\u3080\u3002<\/p>\n<p><em>Matthew Draper<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar65\" href=\"#ar65\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/44971\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Allow to reset cache counters for multiple records by fatkodima \u00b7 Pull Request #44971 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>\u30ad\u30e3\u30c3\u30b7\u30e5\u30ab\u30a6\u30f3\u30bf\u3092\u8907\u6570\u306e\u30ec\u30b3\u30fc\u30c9\u3067\u4e00\u62ec\u30ea\u30bb\u30c3\u30c8\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002<\/p>\n<pre><code class=\"ruby\">Aircraft.reset_counters([1, 2, 3], :wheels_count)\n<\/code><\/pre>\n<p>\u3053\u306e\u6539\u4fee\u306b\u3088\u3063\u3066\u3001ID\u3092\u30eb\u30fc\u30d7\u3067\u56de\u3057\u3066\u51e6\u7406\u3059\u308b\u72ec\u81ea\u5b9f\u88c5\u3068\u6bd4\u8f03\u3057\u3066\u305a\u3063\u3068\u5c11\u306a\u3044\u30af\u30a8\u30ea\u6570\u3067\u6e08\u3080\u3088\u3046\u306b\u306a\u308b\u3002<br \/>\u5f93\u6765\u306e\u30af\u30a8\u30ea\u6570\u306f<code>O(ids.size * counters.size)<\/code>\u3060\u3063\u305f\u304c\u3001\u6539\u4fee\u5f8c\u306f<code>O(ids.size + counters.size)<\/code>\u306e\u30aa\u30fc\u30c0\u30fc\u306b\u6539\u5584\u3055\u308c\u305f\u3002<\/p>\n<p><em>fatkodima<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar66\" href=\"#ar66\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/53277\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Add affected_rows to sql.active_record by skipkayhil \u00b7 Pull Request #53277 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p><a target=\"_blank\" href=\"https:\/\/railsguides.jp\/active_support_instrumentation.html#sql-active-record\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\"><code>sql.active_record<\/code><span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a>\u901a\u77e5\u306b<code>affected_rows<\/code>\u30ad\u30fc\uff08\u7d50\u679c\u3092\u8fd4\u3055\u306a\u3044\u30af\u30a8\u30ea\u306b\u3064\u3044\u3066\u3082\u5f71\u97ff\u3092\u53d7\u3051\u305f\u884c\u6570\u3092\u8fd4\u3059\uff09\u304c\u8ffd\u52a0\u3055\u308c\u305f\u3002<\/p>\n<p><em>Hartley McGuire<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar67\" href=\"#ar67\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/53625\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Fix regression when calling sum with a grouped calculation: by Edouard-chin \u00b7 Pull Request #53625 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a>\u2605<\/h3>\n<blockquote>\n<p><code>group<\/code>\u306e\u7d50\u679c\u306b\u5bfe\u3059\u308b\u8a08\u7b97\u3067<code>sum<\/code>\u304c\u52d5\u304b\u306a\u304f\u306a\u3063\u3066\u3044\u305f\u306e\u3092\u4fee\u6b63\u3002<\/p>\n<p><code>User.group(:friendly).sum<\/code>\u304c\u52d5\u304b\u306a\u304f\u306a\u3063\u3066\u3044\u305f\u3002\u73fe\u5728\u306f\u4fee\u6b63\u6e08\u307f\u3002<\/p>\n<p><em>Edouard Chin<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar68\" href=\"#ar68\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/53139\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Add support for disabling transactions per database in <code>ActiveRecord<\/code> by mjcheetham \u00b7 Pull Request #53139 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u30c6\u30b9\u30c8\u3092\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5358\u4f4d\u3067\u30aa\u30f3\u30aa\u30d5\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3002<\/p>\n<p>\u30c7\u30d5\u30a9\u30eb\u30c8\u306e<code>use_transactional_tests<\/code>\u8a2d\u5b9a\u3092\u500b\u5225\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u3064\u3044\u3066\u30c6\u30b9\u30c8\u30af\u30e9\u30b9\u3067\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u53ef\u80fd\u306b\u306a\u3063\u305f\u3002\u3053\u308c\u306f\u3001\u30c6\u30b9\u30c8\u5b9f\u884c\u4e2d\u306b\u7279\u5b9a\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u73fe\u5728\u306e\u30b9\u30c6\u30fc\u30c8\u306b\u5916\u90e8\u30d7\u30ed\u30bb\u30b9\u304b\u3089\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u306b\u3059\u308b\u5fc5\u8981\u304c\u751f\u3058\u305f\u5834\u5408\u306b\u4fbf\u5229\u3002<\/p>\n<pre><code class=\"ruby\">class MostlyTransactionalTest <\/code><\/pre>\n<p><em>Matthew Cheetham<\/em>,\u00a0<em>Morgan Mareve<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar69\" href=\"#ar69\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/53491\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Cast <code>query_cache<\/code> value when using URL configuration by zzak \u00b7 Pull Request #53491 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>URL\u304b\u3089\u53d6\u5f97\u3057\u305f<code>query_cache<\/code>\u306e\u5024\u304c\u6587\u5b57\u5217\u5f62\u5f0f\u306e\u5834\u5408\u306b\u9069\u5207\u306a\u30c7\u30fc\u30bf\u578b\u306b\u30ad\u30e3\u30b9\u30c8\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u305f\uff08<code>\"false\"<\/code>-&gt;<code>false<\/code>\u306a\u3069\uff09\u3002<\/p>\n<p><em>zzak<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar70\" href=\"#ar70\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/53456\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">NULLS NOT DISTINCT works with UNIQUE CONSTRAINT as well as UNIQUE INDEX by kamipo \u00b7 Pull Request #53456 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p><code>NULLS NOT DISTINCT<\/code>\u304c\u3001\u5f93\u6765\u306e<code>UNIQUE INDEX<\/code>\uff08<a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/48608\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">#48608<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a>\uff09\u306b\u52a0\u3048\u3066<code>UNIQUE CONSTRAINT<\/code>\u3067\u3082\u5229\u7528\u53ef\u80fd\u306b\u306a\u3063\u305f\u3002<\/p>\n<p><em>Ryuta Kamizono<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h3><a target=\"_blank\" id=\"ar71\" href=\"#ar71\">\ud83d\udd17<\/a> <a target=\"_blank\" href=\"https:\/\/github.com\/rails\/rails\/pull\/53400\" data-wpel-link=\"external\" target=\"_blank\" rel=\"external noopener\" class=\"wpel-icon-right\">Translate <code>no connection to the server<\/code> to ConnectionNotEstablished by wata727 \u00b7 Pull Request #53400 \u00b7 rails\/rails<span class=\"wpel-icon wpel-image wpel-icon-19\"\/><\/a><\/h3>\n<blockquote>\n<p>\u5f93\u6765\u306e<code>PG::UnableToSend: no connection to the server<\/code>\u30a8\u30e9\u30fc\u304c\u30ea\u30c8\u30e9\u30a4\u53ef\u80fd\u306a\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u95a2\u9023\u4f8b\u5916\u306b\u7f6e\u304d\u63db\u3048\u3089\u308c\u305f\u3002<\/p>\n<p><em>Kazuma Watanabe<\/em><br \/><cite>\u540cChangelog\u3088\u308a<\/cite><\/p>\n<\/blockquote>\n<h2>\u95a2\u9023\u8a18\u4e8b<\/h2>\n<blockquote class=\"wp-embedded-content\" data-secret=\"BbeHLgTZhn\">\n<p><a target=\"_blank\" href=\"https:\/\/techracho.bpsinc.jp\/hachi8833\/2025_09_05\/153296\" data-wpel-link=\"internal\" target=\"_self\">\u901f\u5831: Rails World 2025\u306eDHH\u30ad\u30fc\u30ce\u30fc\u30c8\u3068Rails 8.1beta1\u30ea\u30ea\u30fc\u30b9<\/a><\/p>\n<\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"\u201c\u901f\u5831: Rails World 2025\u306eDHH\u30ad\u30fc\u30ce\u30fc\u30c8\u3068Rails 8.1beta1\u30ea\u30ea\u30fc\u30b9\u201d \u2014 TechRacho\" src=\"https:\/\/techracho.bpsinc.jp\/hachi8833\/2025_09_05\/153296\/embed#?secret=BbeHLgTZhn\" data-secret=\"BbeHLgTZhn\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"0h56JDON89\">\n<p><a target=\"_blank\" href=\"https:\/\/techracho.bpsinc.jp\/hachi8833\/2024_11_15\/146485\" data-wpel-link=\"internal\" target=\"_self\">Rails 8.0 Changelog\uff08\u5168\u9805\u76ee\u30ea\u30f3\u30af\u4ed8\u304d\uff09<\/a><\/p>\n<\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"\u201cRails 8.0 Changelog\uff08\u5168\u9805\u76ee\u30ea\u30f3\u30af\u4ed8\u304d\uff09\u201d \u2014 TechRacho\" src=\"https:\/\/techracho.bpsinc.jp\/hachi8833\/2024_11_15\/146485\/embed#?secret=0h56JDON89\" data-secret=\"0h56JDON89\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"vXjQRYEvR6\">\n<p><a target=\"_blank\" href=\"https:\/\/techracho.bpsinc.jp\/hachi8833\/2024_06_12\/142432\" data-wpel-link=\"internal\" target=\"_self\">Rails 7.2.0 Active Storage CHANGELOG\uff08\u5168\u9805\u76ee\u30ea\u30f3\u30af\u4ed8\u304d\uff09<\/a><\/p>\n<\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"\u201cRails 7.2.0 Active Storage CHANGELOG\uff08\u5168\u9805\u76ee\u30ea\u30f3\u30af\u4ed8\u304d\uff09\u201d \u2014 TechRacho\" src=\"https:\/\/techracho.bpsinc.jp\/hachi8833\/2024_06_12\/142432\/embed#?secret=vXjQRYEvR6\" data-secret=\"vXjQRYEvR6\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<p>\n          <\/div>\n\n<br \/><a href=\"https:\/\/techracho.bpsinc.jp\/hachi8833\/2025_09_22\/153465\">\u5143\u306e\u8a18\u4e8b\u3092\u78ba\u8a8d\u3059\u308b <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\u53c2\u8003: Release 8.1.0.beta1 \u00b7 rails\/rails\u53c2\u8003: \u30b3\u30df\u30c3\u30c8\u30ea\u30b9\u30c8: Comparing v8.0.2.1&#8230;v8.1.0.beta1 \u00b7 rails\/rails \ud83d\udd17 Remove [&hellip;]","protected":false},"author":1,"featured_media":6481,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[4],"tags":[],"class_list":["post-6480","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-company-tec"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Rails 8.1.0.beta1\u306eChangelog: Active Record\uff08\u5168\u9805\u76ee\u30ea\u30f3\u30af\u4ed8\u304d\uff09\uff5cTechRacho by BPS\u682a\u5f0f\u4f1a\u793e - \u30dd\u30b1\u30b3\u30f3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/techracho.bpsinc.jp\/hachi8833\/2025_09_22\/153465\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rails 8.1.0.beta1\u306eChangelog: Active Record\uff08\u5168\u9805\u76ee\u30ea\u30f3\u30af\u4ed8\u304d\uff09\uff5cTechRacho by BPS\u682a\u5f0f\u4f1a\u793e - \u30dd\u30b1\u30b3\u30f3\" \/>\n<meta property=\"og:description\" content=\"\u53c2\u8003: Release 8.1.0.beta1 \u00b7 rails\/rails\u53c2\u8003: \u30b3\u30df\u30c3\u30c8\u30ea\u30b9\u30c8: Comparing v8.0.2.1&#8230;v8.1.0.beta1 \u00b7 rails\/rails \ud83d\udd17 Remove [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/techracho.bpsinc.jp\/hachi8833\/2025_09_22\/153465\" \/>\n<meta property=\"og:site_name\" content=\"\u30dd\u30b1\u30b3\u30f3\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-22T10:28:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/09\/rails81beta1_changelog_active_record_eyecatch-min.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"info@pokecon.jp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"info@pokecon.jp\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"12\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/techracho.bpsinc.jp\\\/hachi8833\\\/2025_09_22\\\/153465#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/6480\\\/\"},\"author\":{\"name\":\"info@pokecon.jp\",\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#\\\/schema\\\/person\\\/16c9f07b1ba984d165d9aee259bda997\"},\"headline\":\"Rails 8.1.0.beta1\u306eChangelog: Active Record\uff08\u5168\u9805\u76ee\u30ea\u30f3\u30af\u4ed8\u304d\uff09\uff5cTechRacho by BPS\u682a\u5f0f\u4f1a\u793e\",\"datePublished\":\"2025-09-22T10:28:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/6480\\\/\"},\"wordCount\":1348,\"image\":{\"@id\":\"https:\\\/\\\/techracho.bpsinc.jp\\\/hachi8833\\\/2025_09_22\\\/153465#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/rails81beta1_changelog_active_record_eyecatch-min.png\",\"articleSection\":[\"\u4f01\u696d\u30c6\u30c3\u30af\"],\"inLanguage\":\"ja\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/6480\\\/\",\"url\":\"https:\\\/\\\/techracho.bpsinc.jp\\\/hachi8833\\\/2025_09_22\\\/153465\",\"name\":\"Rails 8.1.0.beta1\u306eChangelog: Active Record\uff08\u5168\u9805\u76ee\u30ea\u30f3\u30af\u4ed8\u304d\uff09\uff5cTechRacho by BPS\u682a\u5f0f\u4f1a\u793e - \u30dd\u30b1\u30b3\u30f3\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/techracho.bpsinc.jp\\\/hachi8833\\\/2025_09_22\\\/153465#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/techracho.bpsinc.jp\\\/hachi8833\\\/2025_09_22\\\/153465#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/rails81beta1_changelog_active_record_eyecatch-min.png\",\"datePublished\":\"2025-09-22T10:28:09+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#\\\/schema\\\/person\\\/16c9f07b1ba984d165d9aee259bda997\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/techracho.bpsinc.jp\\\/hachi8833\\\/2025_09_22\\\/153465#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/techracho.bpsinc.jp\\\/hachi8833\\\/2025_09_22\\\/153465\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/techracho.bpsinc.jp\\\/hachi8833\\\/2025_09_22\\\/153465#primaryimage\",\"url\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/rails81beta1_changelog_active_record_eyecatch-min.png\",\"contentUrl\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/rails81beta1_changelog_active_record_eyecatch-min.png\",\"width\":1200,\"height\":720},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/techracho.bpsinc.jp\\\/hachi8833\\\/2025_09_22\\\/153465#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u30db\u30fc\u30e0\",\"item\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rails 8.1.0.beta1\u306eChangelog: Active Record\uff08\u5168\u9805\u76ee\u30ea\u30f3\u30af\u4ed8\u304d\uff09\uff5cTechRacho by BPS\u682a\u5f0f\u4f1a\u793e\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#website\",\"url\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/\",\"name\":\"\u30dd\u30b1\u30b3\u30f3\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#\\\/schema\\\/person\\\/16c9f07b1ba984d165d9aee259bda997\",\"name\":\"info@pokecon.jp\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g\",\"caption\":\"info@pokecon.jp\"},\"url\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/author\\\/infopokecon-jp\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Rails 8.1.0.beta1\u306eChangelog: Active Record\uff08\u5168\u9805\u76ee\u30ea\u30f3\u30af\u4ed8\u304d\uff09\uff5cTechRacho by BPS\u682a\u5f0f\u4f1a\u793e - \u30dd\u30b1\u30b3\u30f3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/techracho.bpsinc.jp\/hachi8833\/2025_09_22\/153465","og_locale":"ja_JP","og_type":"article","og_title":"Rails 8.1.0.beta1\u306eChangelog: Active Record\uff08\u5168\u9805\u76ee\u30ea\u30f3\u30af\u4ed8\u304d\uff09\uff5cTechRacho by BPS\u682a\u5f0f\u4f1a\u793e - \u30dd\u30b1\u30b3\u30f3","og_description":"\u53c2\u8003: Release 8.1.0.beta1 \u00b7 rails\/rails\u53c2\u8003: \u30b3\u30df\u30c3\u30c8\u30ea\u30b9\u30c8: Comparing v8.0.2.1&#8230;v8.1.0.beta1 \u00b7 rails\/rails \ud83d\udd17 Remove [&hellip;]","og_url":"https:\/\/techracho.bpsinc.jp\/hachi8833\/2025_09_22\/153465","og_site_name":"\u30dd\u30b1\u30b3\u30f3","article_published_time":"2025-09-22T10:28:09+00:00","og_image":[{"width":1200,"height":720,"url":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/09\/rails81beta1_changelog_active_record_eyecatch-min.png","type":"image\/png"}],"author":"info@pokecon.jp","twitter_card":"summary_large_image","twitter_misc":{"\u57f7\u7b46\u8005":"info@pokecon.jp","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"12\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/techracho.bpsinc.jp\/hachi8833\/2025_09_22\/153465#article","isPartOf":{"@id":"https:\/\/pokecon.jp\/job\/6480\/"},"author":{"name":"info@pokecon.jp","@id":"https:\/\/pokecon.jp\/job\/#\/schema\/person\/16c9f07b1ba984d165d9aee259bda997"},"headline":"Rails 8.1.0.beta1\u306eChangelog: Active Record\uff08\u5168\u9805\u76ee\u30ea\u30f3\u30af\u4ed8\u304d\uff09\uff5cTechRacho by BPS\u682a\u5f0f\u4f1a\u793e","datePublished":"2025-09-22T10:28:09+00:00","mainEntityOfPage":{"@id":"https:\/\/pokecon.jp\/job\/6480\/"},"wordCount":1348,"image":{"@id":"https:\/\/techracho.bpsinc.jp\/hachi8833\/2025_09_22\/153465#primaryimage"},"thumbnailUrl":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/09\/rails81beta1_changelog_active_record_eyecatch-min.png","articleSection":["\u4f01\u696d\u30c6\u30c3\u30af"],"inLanguage":"ja"},{"@type":"WebPage","@id":"https:\/\/pokecon.jp\/job\/6480\/","url":"https:\/\/techracho.bpsinc.jp\/hachi8833\/2025_09_22\/153465","name":"Rails 8.1.0.beta1\u306eChangelog: Active Record\uff08\u5168\u9805\u76ee\u30ea\u30f3\u30af\u4ed8\u304d\uff09\uff5cTechRacho by BPS\u682a\u5f0f\u4f1a\u793e - \u30dd\u30b1\u30b3\u30f3","isPartOf":{"@id":"https:\/\/pokecon.jp\/job\/#website"},"primaryImageOfPage":{"@id":"https:\/\/techracho.bpsinc.jp\/hachi8833\/2025_09_22\/153465#primaryimage"},"image":{"@id":"https:\/\/techracho.bpsinc.jp\/hachi8833\/2025_09_22\/153465#primaryimage"},"thumbnailUrl":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/09\/rails81beta1_changelog_active_record_eyecatch-min.png","datePublished":"2025-09-22T10:28:09+00:00","author":{"@id":"https:\/\/pokecon.jp\/job\/#\/schema\/person\/16c9f07b1ba984d165d9aee259bda997"},"breadcrumb":{"@id":"https:\/\/techracho.bpsinc.jp\/hachi8833\/2025_09_22\/153465#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/techracho.bpsinc.jp\/hachi8833\/2025_09_22\/153465"]}]},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/techracho.bpsinc.jp\/hachi8833\/2025_09_22\/153465#primaryimage","url":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/09\/rails81beta1_changelog_active_record_eyecatch-min.png","contentUrl":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/09\/rails81beta1_changelog_active_record_eyecatch-min.png","width":1200,"height":720},{"@type":"BreadcrumbList","@id":"https:\/\/techracho.bpsinc.jp\/hachi8833\/2025_09_22\/153465#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u30db\u30fc\u30e0","item":"https:\/\/pokecon.jp\/job\/"},{"@type":"ListItem","position":2,"name":"Rails 8.1.0.beta1\u306eChangelog: Active Record\uff08\u5168\u9805\u76ee\u30ea\u30f3\u30af\u4ed8\u304d\uff09\uff5cTechRacho by BPS\u682a\u5f0f\u4f1a\u793e"}]},{"@type":"WebSite","@id":"https:\/\/pokecon.jp\/job\/#website","url":"https:\/\/pokecon.jp\/job\/","name":"\u30dd\u30b1\u30b3\u30f3","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/pokecon.jp\/job\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/pokecon.jp\/job\/#\/schema\/person\/16c9f07b1ba984d165d9aee259bda997","name":"info@pokecon.jp","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/secure.gravatar.com\/avatar\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g","caption":"info@pokecon.jp"},"url":"https:\/\/pokecon.jp\/job\/author\/infopokecon-jp\/"}]}},"_links":{"self":[{"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/posts\/6480","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/comments?post=6480"}],"version-history":[{"count":1,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/posts\/6480\/revisions"}],"predecessor-version":[{"id":6482,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/posts\/6480\/revisions\/6482"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/media\/6481"}],"wp:attachment":[{"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/media?parent=6480"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/categories?post=6480"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/tags?post=6480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}