なるようになるブログ

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

rails commit log流し読み(2022/05/12)

2022/05/12分のコミットです。

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

activemodel/CHANGELOG.md

activesupport/CHANGELOG.md

activerecord/CHANGELOG.md


Stop autoclosing of PRs

.github/stale.ymlの修正です。

PRの自動クローズは行われず、自動クローズはissueについてのみ行うよう修正しています。


Provide pattern matching for ActiveModel

activemodel/lib/active_model/attribute_methods.rbの修正です。

Active Modelにdeconstruct_keysメソッドを追加しています。attributesに対するパターンマッチを出来るようにする為。

class Person < ActiveRecord::Base
end

def greeting_for(person)
  case person
  in { name: "Mary" }
    "Welcome back, Mary!"
  in { name: }
    "Welcome, stranger!"
  end
end

person = Person.new(name: "Mary")
greeting_for(person) # => "Welcome back, Mary!"

Merge pull request #44897 from claasz/patch-1

rails guideのAction View Form Helpersの修正です。

Nested Formsの項のattributesがnestしている場合のkeyの型についての説明を追加しています。


Fix MemoryStore#write(name, val, unless_exist: true) with expired entry

activesupport/lib/active_support/cache/memory_store.rbの修正です。

ActiveSupport::Cache::MemoryStore#writeunless_exist: trueオプションを指定した場合に、expireしたkeyのチェックが正しく行われないバグがあったのを修正しています。


Avoid query from calculations on contradictory relation

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

where(attr: []) + calculationsメソッドを実行した場合(e.g. User.where(id: []).count)にqueryを実行しないよう修正しています。where(attr: [])を実行した場合queryを実行せずに空の配列を返すようになっており、calculationsメソッドが指定された場合もqueryを実行する必要が無い為。


Update working_with_javascript_in_rails.md

rails guideのWorking with JavaScript in Railsの修正です。

Confirmationsの項にあるlink_toメソッドの例で生成されるHTMLが実際に生成される内容と異なっていたのを修正しています。