なるようになるブログ

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

rails commit log流し読み(2021/04/02)

2021/04/02分のコミットです。

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

activerecord/CHANGELOG.md


Merge pull request #41812 from rokbot/fix/guides-mailer-basics

rails guideのAction Mailer Basicsの修正です。

Calling the Mailerの項にあるexampleコードが、ActiveModel::ForbiddenAttributesErrorが発生するコードになってしまっていたのを修正しています。


Merge pull request #41659 from basecamp/active-record-encryption

Active Recordの修正です。

Active Record modelsのattributeをencryptする機能が追加されました。HEYで使用している機能との事です。

encryptするには、まずencryption用のkeyを生成する必要があります。このkeyはdb:encryption:initで生成出来るようになっています。encrypt対象のattributeは、modelで定義出来るようになっています。

class Article < ApplicationRecord
  encrypts :title
end
article = Article.create title: "Encrypt it all!"
# => INSERT INTO `articles` (`title`) VALUES ('{\"p\":\"n7J0/ol+a7DRMeaE\",\"h\":{\"iv\":\"DXZMDWUKfp3bg/Yu\",\"at\":\"X1/YjMHbHD4talgF9dt61A==\"}}')

デフォルトではencrypがnon-deterministicに行われる為、値を指定しての検索が行えないようになっています(同じ値をencryptしても結果が変わる為)。

値を指定のしての検索を行いたい場合、encryptがdeterministicに行われるようにする必要があります。これはencryptsのオプションで指定出来るようになっています。

class Author < ApplicationRecord
  encrypts :email, deterministic: true
end

Author.find_by_email("some@email.com")

その他、fixtureやreferences等の為の機能があります。詳細は、Guideを参照してください。


Minor encryption guide tweaks and corrections

rails guideのActive Record Encryptionの修正です。

各項のタイポ、言い回しを修正しています。


Fix typos encryption doc (#41817)

activerecord/lib/active_record/encryption/key_generator.rbのdoc、及び、rails guideのActive Record Encryptionの修正です。

各箇所のタイポ、不要なスペースの削除を行っています。


Fix typo [ci skip]

rails guideのActive Record Encryptionの修正です。

wantwanにタイポしていたのを修正しています。


Fix wrong require

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

requireするライブラリ名をタイポしていたのを修正しています。


Remove print statement / uncomment relevant assertion

activerecord/test/cases/encryption/extended_deterministic_queries_test.rbの修正です。

テスト内でコメントアウトされていたassertionを実行するよう修正、及び、不要なデバッグ文の出力処理を削除しています。


Add Active Record encryption to CHANGELOG

activerecord/CHANGELOG.mdの修正です。

encryption機能について、CHANGELOGにエントリーを追加しています。


Tweak AR Encryption guide for better highlighting [ci skip]

rails guideのActive Record Encryptionの修正です。

各箇所のフォーマットの修正を行っています。