Rails4+deviseで、乱数９桁のユーザーIDを生成する方法


初学者です。

deviseでは、標準で「id」があり、これは、1.2.3.4...と、登録順になるとおもうのですが、

これとは、別に、「userid」というカラムを追加して、これを会員登録時に自動で生成したいと思っています。

９桁の乱数は、

[code]

    n = 9
    format("%0#{n}d", SecureRandom.random_number(10**n))
    
[/code]

で作成しようと、思っています。

これを、どこに、どのように書けば、ユーザー情報として登録されるのでしょうか。

お願い致します。




モデルクラスでコールバックを使うのがよいでしょう。コールバックについては例えば[Active Record コールバック -
Railsガイド](http://railsguides.jp/active_record_callbacks.html)に説明があります。

[code]

    class User < ActiveRecord::Base
      before_create :generate_userid
    
      private
      def generate_userid
        self.userid = (ユーザーIDを生成)
      end
    end
    
[/code]

