なるようになるブログ

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

rails commit log流し読み(2017/05/15)

2017/05/15分のコミットです。

CHANGELOGへの追加はありませんでした。


explain why guide translations need a fork [ci skip]

rails guideのContributing to Ruby on Railsの修正です。

Translating Rails Guidesの項に、翻訳したドキュメントはRailsレポジトリにsubmitする必要は無い旨説明を追加しています。


Don’t cache locally if unless_exist was passed

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

unless_existオプションを指定した場合、データを書き込む際にlocal cacheから値を削除するよう修正しています。

          def write_entry(key, entry, options)
-            local_cache.write_entry(key, entry, options) if local_cache
+            if options[:unless_exist]
+              local_cache.delete_entry(key, options) if local_cache
+            else
+              local_cache.write_entry(key, entry, options) if local_cache
+            end
+
             super
           end

元々は必ず値を書き込むようになっていたのですが、unless_existオプションを指定している場合は同じkeyが存在していたら値が上書きされない為、結果誤った値がcacheに保持されてしまっていました。値がどうなるかはbackendに依存する為、値を保持するのではなく削除する(次値を取得する際に必ずbackendから値を取得する)ように対応していまs.