Ask A Question


You’re not receiving notifications from this thread.

Normalizes method in ActiveRecord Discussion

I would like to add that you can add multiple attributes to be normalized

normalizes [:phone:, :fax, :mobile], with: -> phone_number { phone_number.gsub(/\D/, '') }



This is a great feature.

The greatest disadvantage is, that it only works with ActiveRecord and not with ActiveModel.
This means you cannot use it for Form Objects or other, non-ActiveRecord-baked classes.
I opened a feature request. Hopefully, it will be migrated to ActiveModel some day.

I also wrote a small blog post about how to increase reusability and testability of this.

This would lead to the introduction of normalization pipelines:

class User < ActiveRecord::Base
  normalizes :email, with:, BlankNormalizer, -> { _1&.downcase })
Join the discussion
Create an account Log in

Want to stay up-to-date with Ruby on Rails?

Join 82,329+ developers who get early access to new tutorials, screencasts, articles, and more.

    We care about the protection of your data. Read our Privacy Policy.