なるようになるブログ

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

rails commit log流し読み(2019/01/22)

2019/01/22分のコミットです。

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

activemodel/CHANGELOG.md


Alias case nodes

activerecord/lib/arel/nodes/case.rbの修正です。

case nodeでaliasを使用出来るよう、Arel::Nodes::Case classでArel::AliasPredicationをincludeするよう修正しています。

元々使用出来ていたのが、ArelをActive Recordにマージした際に使用出来なくなってしまっていたようで、再度使用出来るようにしています。


Merge pull request #34990 from rails/fix-time-multiparameter-casting

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

timeのmultiparameterのデフォルトのyearを1970から2000に変更しています。

time_select等のhelperを使用している場合に使用されるデフォルトなのですが、これが1970だと、インスタンス生成時とDBへの保存後とで値が変わってしまうという問題があった為、AR側の処理に合わせてデフォルトを2000にしています。

Before:

event = Event.new(start_time: { 4 => 20, 5 => 30 })
event.start_time # => 1970-01-01 20:30:00 UTC
event.save
event.reload
event.start_time # => 2000-01-01 20:30:00 UTC

After:

event = Event.new(start_time: { 4 => 20, 5 => 30 })
event.start_time # => 2000-01-01 20:30:00 UTC
event.save
event.reload
event.start_time # => 2000-01-01 20:30:00 UTC