週刊Railsウォッチ(20180622)Railsの需要未だ巨大、Unicode 11.0リリース、WebDriverがW3Cで勧告、Flutter.io、2封筒問題ほか

こんにちは、hachi8833です。私が気まぐれに応援するサッカーチームは必ず負けるので、どこも応援しないようがんばります。 「ドイツにメキシコが勝ったのってどのくらいすごいの」「Perl対Go 並行処理対決でPerlが勝った」「Goroutineが退場してPreforkが勝った」などの会話が行われている — Windymelt (@windymelt) June 20, 2018 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ まだ検討段階ですが、週刊Railsウォッチの刊行日を月曜日に移動するかもしれません ⚓Rails: 今週の改修(Rails公式ニュースより) 特記ない限りRails 6.0向けです。 ⚓既存association削除時の探索をハッシュに変えて高速化 PR: Use hash lookup for deleting existing associations from `target` by arthurchui · Pull Request #29939 · rails/rails # activerecord/lib/active_record/associations/collection_association.rb#L391 def remove_records(existing_records, records, method) records.each { |record| callback(:before_remove, record) } delete_records(existing_records, method) if existing_records.any? – records.each { |record| target.delete(record) } + hashed_records = records.group_by { |record| record } + target.select! { |record| !hashed_records[record] } records.each { |record| callback(:after_remove, record) } end GDPR対応でユーザーや「いいね👍」をごっそり削除することになった人、いるよね? dependent: destroyオプションのアルゴリズムが更新されて(計算量が)二次から一次に削減されました。これ大好き😋 公式ニュースより大意 つっつきボイス: 「eachで全回しでdeleteしてたのを、group_byしてからhashed_recordsで削除したと」「quadratic(二次)からlinear(一次)って、ここでは計算量のことでいいんですよね?」「ですね🧐O(n^2)からO(n)に削減されたやつ」「お、例のsgrifさんが『self.target -= recordsだけでいけるんじゃ?』ってコメントしてる🤔」「おー、確かにこの書き方は演算子がオーバーライドされてればできるな: 面白い😋」 参考: ランダウの記号 - Wikipedia 参考: 一次方程式 - Wikipedia — linear equation 参考: 二次方程式 - Wikipedia — quadratic equation ⚓storeアクセサで従来のprefixの他にsuffixも使えるようになった PR: Allow prefix/suffix options for store accessors by untidy-hair · Pull Request #29373 · rails/rails # 同PRより store :settings, accessors: [ :two_factor_auth ], coder: JSON, _prefix: true # => accessor will be model.settings_two_factor_auth store_accessor :settings, :secret_question, _prefix: ‘config’ # => accessor will be model.config_secret_question store :settings, accessors: [ :login_retry ], _suffix: ‘setting’ # => accessor will be model.login_retry_setting つっつきボイス: 「おー、storeにsuffixもねー: 既存のデータベースでsuffixを使うやつがあるんだろうし、prefixが使えるならsuffixも欲しいというのはまあワカル」「指定したsuffixが自動で追加されるんですね」「自分はあんまり使わないかなー?😆」 ⚓Active Modelのデフォルトのエラーメッセージ表示方法を改良 PR: Allow to override the full_message error format by Larochelle · … Continue reading 週刊Railsウォッチ(20180622)Railsの需要未だ巨大、Unicode 11.0リリース、WebDriverがW3Cで勧告、Flutter.io、2封筒問題ほか