Happy New Year, Rubyists on Rails! This is Tim here bringing you all the latest in Rails from the Holiday and New Year period. We hope you got to unwind during this time of year (if that is your thing) and are well rested for all that 2018 has to bring. Rails, on the other hand, saw a flurry of activity including many, many bug fixes. So, without further ado…..

Since our last issue, 36 people gave the gift of Pull Request 🎁 to Rails. 6 of those contributed for the very first time! A big thank you to everyone who contributed during a time that is typically reserved for performing upgrades and fixes to extended family members’ devices.

Bulk ALTER support has existed for MySQL’s adapter for many years. This change adds support for the PostgreSQL adapter, meaning that multiple column changes can now be aggregated into a single statement.

The default behavior for ActiveStorage::Blob#service_url is to use an :inline value for disposition. There are certain distinct content types, however, for which this does not make sense. This change identifies those cases and prevents them from inheriting this default behavior.

If you had called assert_changes with a to argument, you may have been surprised to find that it was sufficient to match only the resultant value for it to pass, even if nothing changed. This revision fixes that by failing in the event that nothing changed, as would be expected.

Normally if you select a subset of a record’s attributes and then try to reference an unselected attribute, you will get a MissingAttributeError. However, if you then save‘d the record and called that same attribute, you may be surprised to get nil instead. This revision fixes that by always raising an error.

That’s it for this week! Even though this was a bumper issue, there were as always many, many more changes I wanted to talk about that I could not list. But you can check them all out here! Until next time….