

初学者です。

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

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

９桁の乱数は、

[code]

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

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

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

お願い致します。


CC BY-SA 3.0
2015-06-08T15:09:47.310
11131
2015-06-08T23:56:18.743
10056
question
ruby-on-rails devise
Rails4+deviseで、乱数９桁のユーザーIDを生成する方法


モデルクラスでコールバックを使うのがよいでしょう。コールバックについては例えば[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]


CC BY-SA 3.0
2015-06-08T23:56:18.743
11140
2015-06-08T23:56:18.743
5793
11131
answer