下記のような正規表現によるバリデーションを実装しました。

class User < ApplicationRecord
  validates :email, format: { with: /\A[\w+\-.]+@[a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i }
end

この正規表現を、他のモデルやコントローラ等どこでも使い回せるように別ファイルに切り出したいです。(使用する正規表現をまとめたファイルを作りたい)

調べてみるとバリデーションはrailsが起動したときに1回だけ初期化するようだったので、config/initiaizersを利用しようと思いました。具体的には下記です。

config/initializers/common_regexp.rbにモジュールを定義。

module CommonRegexp
  module_function

  # わざわざメソッドにしているのは、引数を受け取り
  # 動的に正規表現を変えることも検討しているため。
  def format_email
    /\A[\w+\-.]+@[a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i
  end

  # 以下他の正規表現もまとめる
end

.

class User < ApplicationRecord
  validates :email, format: { with: CommonRegexp::format_email }
end

これで一応動いたのですが、正規表現をまとめるためにconfig/initializersを使用するのは用途が間違っているような気がします。

こういった場合、どのように実装するのがベストですか?