なるようになるブログ

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

rails commit log流し読み(2018/07/08)

2018/07/08分のコミットです。

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

activestorage/CHANGELOG.md


Merge pull request #32986 from kevgathuku/patch-1

rails guideのGetting Started with Enginesの修正です。

Providing engine functionalityの項に、このセクションではengineのディレクトリ配下でコマンドを実行することを想定している旨説明を追加しています。


Fix that models can clobber each others' attachment reflections

activestorage/lib/active_storage/reflection.rbの修正です。

異なるmodelで同じattachement nameを使用していた場合に(下記のようなケース)、add_attachment_reflectionメソッドでreflectionを指定した場合に、異なるmodelのattachmen reflectionが変更されてしまう(User.add_attachment_reflectionメソッドを呼び出したのに、Groupのreflectionが変更されてしまう)バグがあったのを修正しています。

class User < ApplicationRecord
  has_one_attached :avatar
end

class Group < ApplicationRecord
  has_one_attached :avatar
end

Store newly-uploaded files on save rather than assignment

Active Storageの修正です。

新規にアップロードしたファイルが、オブジェクトにアサインされた際に即座に保存されていたのを、そのアサインしたオブジェクトがsaveされた後に保存するよう修正しています。

@user.avatar = params[:avatar]

上記のようなコードだった場合、Rails 5.2ではアサインされた際に即座にファイルが保存されてしましたが、6.0では@userのsaveが成功した後にファイルが保存されるようになっています。


has_secure_password: use recovery_password instead of activation_token

Active Modelの修正です。

has_secure_passwordで任意のattribute名を指定する場合のexampleやテストで、activation_tokenというattributeを使用していたのを、recovery_passwordというattributeを使用するよう修正しています。

has_secure_tokenというメソッドがある為、exampleにxx_tokenという名前のattributeを使用するのは紛らわしい為、というのが理由のようです。


added tests for assert_no_difference with multiple expressions

activesupport/lib/active_support/testing/assertions.rbactivesupport/test/test_case_test.rbの修正です。

assert_no_differenceのdocに複数のexpressionを指定した場合のexample、及び、テストを追加しています。