2023/06/02分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- Assign auto populated columns on Active Record record creation
- Remove the deprecation warning when
prepared_statements
configuration is set for the mysql2 adapter. - Fix where on association with has_one/has_many polymorphic relations.
activestorage/CHANGELOG.md
Merge pull request #48369 from Shopify/test-rails-console-with-reline
rails consoleのテストを実行するのにreadline-ext
gemを使用していたのを、reline
(現在のirbのデフォルト) gemを使用するよう修正しています。reline
がirbのデフォルトであること、及び、現在もアクティブにメンテナンスされている為、との事です。
Merge pull request #48367 from ally1002/guide-back-to-top
guides/assets/stylesheets/main.css
の修正です。
guideで表示しているtopへ戻るボタンの画像のパスが誤っていたのを修正しています。
Merge pull request #48241 from Shopify/populate-autoincremented-column-for-a-model-with-cpk
Active Recordの修正です。
Active Recordのオブジェクト生成時にauto populated columnの設定処理を自動で行うよう修正しています。例えば、 下記のようなschemaがあった場合に、
create_table :posts, id: false do |t| t.integer :sequential_number, auto_increment: true t.string :title, primary_key: true t.string :ruby_on_rails, default: -> { "concat('R', 'o', 'R')" } end
オブジェクト生成時にauto populated column(上記の場合sequential_number
のauto_increment
とruby_on_rails
のdefault
function)が計算された状態で設定されるようになっています。
new_post = Post.create(title: 'My first post') new_post.sequential_number # => 1 new_post.ruby_on_rails # => 'RoR'
Revert deprecation message for prepared statements
activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb
の修正です。
mysql2 adapterのprepared_statements
のデフォルト値をRails 7.2で変更する(trueにする)旨出力していたdeprecatedメッセージを削除しています。mysql2 gemのprepared_statements
処理にバグがあり、それが解決するまではデフォルトではtrueには出来ない、と判断された為。
activerecord/CHANGELOG.md
の修正です。
各エントリーのフォーマットの修正を行っています。
Merge pull request #48339 from natematykiewicz/activestorage_remove_attachment_empty_string
activestorage/lib/active_storage/attached/model.rb
の修正です。
Active Storageのattachmentの削除をするのに、attachmentにnilを指定する必要があった(e.g. User.find(params[:id]).update!(avatar: nil)
)のを、空文字を指定した場合も削除するよう修正しています。postされたparamsをそのまま指定して削除出来るようにする為。
Merge pull request #45783 from shhavel/fix/anonymous_pg_columns_of_different_type_from_json
activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb
、
activerecord/lib/active_record/result.rb
の修正です。
PostgreSQLのJSONB型のカラムに対して、arrow operatorとdouble arrow operatorを1つのクエリーに同時に指定した場合に結果が正しく取得出来ないバグがあったのを修正しています。
Support VISUAL
env var, and prefer it over EDITOR
railtiesの修正です。
credentials
やencrypted
などエディターを使用してデータの編集を行うコマンドで、使用するエディターを指定するのにVISUAL
という環境変数を使用出来るよう修正しています。元々EDITOR
という環境変数を使用出来るようになっていたのですが、EDITOR
はed
やex
modeのviなどのフルスクリーンを使用しないエディターを指定する環境変数で、viやemacsなどのフルスクリーンを使用するエディターの場合はVISUAL
の方が使うべき、という慣習がある為、VISUAL
の方もサポートするようになっています。なお、VISUAL
とEDITOR
の両方が指定された場合は、VISUAL
の方の設定が優先されるようになっています。
参考: environment variables - VISUAL vs. EDITOR – what’s the difference?
Fix polymorphic association subquery
Active Recordの修正です。
has_one/has_many polymorphic relationをwhere
でassociationとして指定した場合に、誤ったqueryが実行されてしまうバグがあったのを修正しています。
Before:
Treasure.where(price_estimates: PriceEstimate.all) #=> SELECT (...) WHERE "treasures"."id" IN (SELECT "price_estimates"."estimate_of_id" FROM "price_estimates")
After:
Treasure.where(price_estimates: PriceEstimate.all) #=> SELECT (...) WHERE "treasures"."id" IN (SELECT "price_estimates"."estimate_of_id" FROM "price_estimates" WHERE "price_estimates"."estimate_of_type" = 'Treasure')
Merge pull request #48357 from gmcgibbon/belongs_to_cpk
activerecord/lib/active_record/associations.rb
、
activerecord/lib/active_record/reflection.rb
の修正です。
belongs_to associationのvalidity checkでcomposite primary keyのチェックを行うよう修正しています。associationのquery_constraints
の指定とforeign keyの値が一致していない場合に気付けるようにする為。
Merge pull request #48380 from mdh/add-request-session-documentation
actionpack/lib/action_controller/metal.rb
のdocの修正です。
request.session
にdocを追加しています。
Eagerly validate pool arguments in Redis and MemCache stores
Active Supportの修正です。
Redis/MemCache storesで、pool argumentsのチェックをインスタンス生成時に行うよう修正しています。poolに不正な値を指定した場合等に、実行時にエラーになるのを避ける為。
Fix link to ActionController::Cookies#cookies
actionpack/lib/action_dispatch/middleware/cookies.rb
のdocの修正です。
ActionDispatch::Cookies
のdoc内のcontrollerのcookies
メソッドのdocへのリンクが誤っていたのを修正しています。