なるようになるブログ

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

rails commit log流し読み(2018/04/12)

2018/04/12分のコミットです。

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


Remove link for the kindle version of guides on edge

guides/source/index.html.erbの修正です。

edgeのrails guideのkindle版へのリンクを削除しています。

kindle版のguideの生成処理は割と負荷が高い処理で、その処理のせいでrails guideを動かしてるサーバのCPUがずっと負荷が高い状態(CPUを100%使用している状態)になってしまっていました。で、それを避ける為、edgeについてはkindle版を生成しないようにしたとの事です。

参考:Disable mobi generation for rails guides on edge


don't check for immutability when setting skip_preloading as it doesn't effect the arel and the arel may already be generated by fresh_when

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

collection caching と HTTP cachingを一緒に使用した場合に、ActiveRecord::ImmutableRelationがraiseされてしまうバグがあったのを修正しています。

skip_preloading!を呼び出した際、assert_mutability!メソッドを使用してload済みか、及び、@arelが定義済みかどうかをチェックするようになっていました。ただ、HTTP cachingを使用している場合(fresh_whenを使用している場合)、arelメソッドが呼ばれる為、既に@arelが定義済みになり、結果ActiveRecord::ImmutableRelationが発生してしまっていました。

skip_preloading!はそもそもquery生成に影響がある処理ではなく、arelが既に使用されているかどうかのチェックはそもそも不要だろう、という事で、チェック処理を行わないよう修正しています。


Fix MySpace Samy worm link [ci skip]

rails guideのSecuring Rails Applicationsの修正です。

MySpace Samy wormへのリンクが古いページへのリンクになっていたのを修正しています。


Cache::Store#read: Fix fixed-width end tag in docs

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

Cache:Store#readメソッドのdocの修正です。

:expires_inオプションを囲むttタグの閉じタグが不足していたのを修正、及び、1行80文字に収まるよう、適切な位置に改行を追加しています。


Merge pull request #31913 from rywall/define-callbacks-desc

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

define_callbacksでcallbackを定義する際に、子孫のクラスにもcallbackを定義するよう修正しています。

子のクラスにもcallbackが定義されていないと、親のクラスでcallbackを呼んだ際にエラーになってしまう為。

class Foo < ActiveRecord::Base
end

ActiveRecord::Base.define_model_callbacks :greet
ActiveRecord::Base.after_greet { puts 'goodbye' }
# => NoMethodError: undefined method `prepend' for nil:NilClass