なるようになるブログ

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

rails commit log流し読み(2018/05/18)

2018/05/18分のコミットです。

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

activestorage/CHANGELOG.md


Merge pull request #32908 from anniecodes/fix-time-random-string

activemodel/lib/active_model/type/time.rbの修正です。

time型のattributeに不正なStringを指定した場合に、値に2000-01-01 00:00:00が設定されてしまっていたのを、nilが設定されるよう修正しています。

# before
user = User.new
user.time_of_birth = "ABC"
user.time_of_birth # => Sat, 01 Jan 2000 00:00:00 UTC +00:00

# after
user = User.new
user.time_of_birth = "ABC"
user.time_of_birth # => nil

Generate getter and setter methods in mixin

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

attachmentに対するgetter / setterメソッドを定義する際に、generated_association_methodsメソッドで生成されたmoduleに対してメソッドを定義するよう修正しています。

メソッドを定義するclassでメソッドをオーバーライド出来るようにするため。

例えば、Userに対してavatarというattachmentがあった場合、

User.class_eval do
  def avatar
    super.filename.to_s.reverse
  end
end

上記のようにすると、Userに定義されたavatarメソッドが呼ばれるようになります。


Fix markdown [ci skip]

rails guideのActive Storage Overviewの修正です。

コードを挿入する際のバッククオートの数が多かった(三つではなく四つあった)のを修正しています。


Permit opening a blob in a custom tempdir

Active Storageの修正です。

blobをopenする際のtempdirをメソッドの引数で指定出来るよう修正しています。


Fix documentation for ActionController::Params#fetch

actionpack/lib/action_controller/metal/strong_parameters.rbのdocの修正です。

ActionController::Params#fetchメソッドのdocに、指定されたkeyが見つからなかった場合、第二引数に指定された値がそのまま返ってくる旨説明されていました。

が、実際は、そのままではなく、ActionController::Parametersに変換された値が返ってくるケースがあったため、その旨説明を修正しています。