Friday, July 22, 2022

Bugfixes, performance improvements and more!

Posted by gregmolnar

Hi, this is Greg, bringing you the latest news from the Rails world.

Fix caching of missed translations Using Object.new for the default value of a missing translation caused the cache store to return a different object when being fetched from the cache. This PR changes the default to an integer, which resolves the problem.

Add endless range example to the Active Record Querying guide Beginless/endless ranges can be used to create less than/greater than conditions with Active Record, but that was an undocumented feature before this PR added it to the Rails Guides.

Prevent ActionDispatch::ServerTiming from overwriting existing header value This change fixes the issue of ActionDispatch::ServerTiming overwriting instead of appending to the Server-Timing header.

Allow to use pre-defined variants for previews This PR adds the ability to use pre-defined variants when calling preview or representation on an attachment. For instance:

class User \< ActiveRecord::Base has\_one\_attached :file do |attachable| attachable.variant :thumb, resize\_to\_limit: [100, 100] end end \<%= image\_tag user.file.representation(:thumb) %\>

Speedup ActionView::OutputBuffer Ruby 3.2 noticeably improved the performance of String#<< so by using a String instance instead of a String subclass there are performance gains.

Since last week, 17 people contributed to Rails. As usual, there are too many changes to cover them all, but you can check out all of them here. Until next time!