Hey! Robin here with the latest news from the Ruby on Rails world.
Support accepts_nested_attributes_for for delegated types
Rails 6.1 introduced delegated types to ease handling some polymorphic relationships. This pull request makes using
accepts_nested_attributes_for on such types a piece of cake.
Use nested queries doing UPDATE with GROUP BY and HAVING on MySQL
Since MySQL doesn’t support
GROUP BY and
HAVING clauses, this patch fixes such scenario to rely on a sub-query. A similar patch has been merged to deal with
Raise a specific error on unsafe redirects
Rails 7.0 prevents redirects to other hosts than the current one unless you explicitly ask it to. In case of unsafe redirects, an
ArgumentError was raised. Now, the error is more specific, allowing you to rely on a
rescue_from block to deal with such cases.
url_from to check if an URL is internal
In line with the previous patch, a new
url_from method is available in controllers to check whether an URL is internal or not, simplifying the way to provide an alternative in case it is not.
Improved Active Job test helpers error messages
This is the kind of little changes that make life easier. The error messages of
assert_performed_with have been improved to ease debugging when the assertion failed. Happy testing!
ActiveSupport::CurrentAttributes method generation
It’s always lovely to see performance optimizations. This patch is about method generation of classes inheriting from
ActiveSupport::CurrentAttributes. The trick here is to generate the code as a string rather than relying on a closure.
13 people contributed to Rails since last time. All the changes can be checked here. Until next week!