なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2024/11/06)

2024/11/06分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

activerecord/CHANGELOG.md


Merge pull request #53522 from nashby/routes-reload

railties/lib/rails/application/routes_reloader.rbの修正です。

eager loadが有効になっている場合に、Rails Engine経由でのroutesの追加が一つしか行われない(rotutesを追加するgemが複数ある場合、最初の一つのroutesしか追加されない)バグがあったのを修正しています。


Merge pull request #53515 from k-tsuchiya-jp/fix-53467

railties/lib/rails/backtrace_cleaner.rbの修正です。

Railsアプリケーション名にハイフンが使われている場合に、rails consoleエラーになった場合にエラー発生箇所のtraceが正しく表示されないバグがあったのを修正しています。


Merge pull request #53504 from SleeplessByte/fix/anchor-scroll-mobile

guides/assets/javascripts/guides.jsの修正です。

edge guideをモバイル端末で、アンカーを指定して表示した際に、スクロールが出来なくなるバグがあったのを修正しています。


Merge pull request #53533 from Earlopain/no-docs-for-rackup

rails guideのRails on Rackの修正です。

rackupコマンドを指定してRailsアプリケーションを起動する方法について説明したセクションを削除しています。rackupコマンドがdeprecatedになっている為。


Merge pull request #53520 from Earlopain/fix-backtrace-env-gem-paths

railties/lib/rails/backtrace_cleaner.rbの修正です。

BACKTRACE envが指定されている場合、traceにgem名が表示されていたのを、ファイルの絶対パスが表示されるよう修正しています。絶対パスの方が便利だろう、とのことです。

before

IOError: closed stream
    /usr/local/lib/ruby/3.3.0/delegate.rb:349:in `rewind'
    /usr/local/lib/ruby/3.3.0/delegate.rb:349:in `block in delegating_block'
    httpx (1.3.3) lib/httpx/transcoder/multipart/encoder.rb:39:in `block in rewind'
    httpx (1.3.3) lib/httpx/transcoder/multipart/encoder.rb:37:in `each'
    httpx (1.3.3) lib/httpx/transcoder/multipart/encoder.rb:37:in `each_with_object'
    httpx (1.3.3) lib/httpx/transcoder/multipart/encoder.rb:37:in `rewind'
    httpx (1.3.3) lib/httpx/transcoder/multipart/encoder.rb:24:in `to_s'
    /usr/local/lib/ruby/3.3.0/delegate.rb:87:in `method_missing'

after

IOError: closed stream
    /usr/local/lib/ruby/3.3.0/delegate.rb:349:in `rewind'
    /usr/local/lib/ruby/3.3.0/delegate.rb:349:in `block in delegating_block'
    /usr/local/bundle/gems/httpx-1.3.3/lib/httpx/transcoder/multipart/encoder.rb:39:in `block in rewind'
    /usr/local/bundle/gems/httpx-1.3.3/lib/httpx/transcoder/multipart/encoder.rb:37:in `each'
    /usr/local/bundle/gems/httpx-1.3.3/lib/httpx/transcoder/multipart/encoder.rb:37:in `each_with_object'
    /usr/local/bundle/gems/httpx-1.3.3/lib/httpx/transcoder/multipart/encoder.rb:37:in `rewind'
    /usr/local/bundle/gems/httpx-1.3.3/lib/httpx/transcoder/multipart/encoder.rb:24:in `to_s'
    /usr/local/lib/ruby/3.3.0/delegate.rb:87:in `method_missing'

Fix docs for default_form_builder

actionmailer/lib/action_mailer/form_builder.rbactionpack/lib/action_controller/form_builder.rbのdocの修正です。

default_form_builderメソッドのdocに、引数のbuilderのデフォルトはActionView::Helpers::FormBuilderインスタンスである旨説明が記載されていたのですが、builderが期待しているのはActionView::Helpers::FormBuilder、または、ActionView::Helpers::FormBuilderを継承したクラスである為、その旨説明を修正しています。


Remove redundant period in Security guide

rails guideのSecuring Rails Applicationsの修正です。

Account Hijackingセクションのグラマーの修正を行っています。

Allow per-database transaction preferences in fixtures

activerecord/lib/active_record/test_fixtures.rbの修正です。

transactional testsの有効/無効をdatabase毎に行えるよう修正しています。元々はuse_transactional_testsで全てのdatabaseに対するtransactional testsの有効/無効を行えたのですが、これに加えて、特定のdatabaseでだけ無効にするskip_transactional_tests_for_databaseメソッド、及び、逆に有効にするuse_transactional_tests_for_databaseを追加しています。この新しく追加された2つのメソッドの設定は、use_transactional_testsの設定内容を上書きします。

class MostlyTransactionalTest < ActiveSupport::TestCase
  self.use_transactional_tests = true
  skip_transactional_tests_for_database :shared
end

テスト中にdatabaseの内容を他のプロセスから確認したい事があり、そのためとの事です。