次のモデルを使用した単純な Rails 3 請求アプリケーションがあります。
Brand
Client
Invoice
ブランドには多くの請求書があり、クライアントには多くの請求書があり、請求書はクライアントとブランドに属しています。基本的に、ブランドは請求書を作成する会社であり、クライアントは請求書の受信者であり、請求書は実際の請求書です。
私は、ブランドごとに固有のものを前に付けた各請求書の単純なランダムな参照番号を持つ最善の方法を考え出そうとしています.
ブランドテーブルにinvoice_prefixを追加しようと考えています。次に、ブランドにはそれぞれ のような 3 桁のプレフィックスが付きDAN-
ます。
請求書テーブルの列に、ブランドの接頭辞とそれに続く 5 桁の乱数を追加する最良の方法は何ですか?
これを行うためのより良い方法の提案をお待ちしています!
私が望む最終結果は、各請求書が のような一意の参照を持つことDAN-98372
です。
ブランド テーブルにプレフィックス列を追加し、ブランド プレフィックスの後に乱数を挿入する請求書の before_create アクションを作成するのが最善の方法だと思います。これを行う最善の方法がわかりません。
before_create :generate_reference
private
def generate_reference
self.invoice_number = self.brand.prefix
end
上記のコードはブランドの接頭辞を正しく取得しますが、後でランダムな 5 桁の数字を追加する方法がわかりません。
のようなものがうまくいくと思います<%= rand(1000..9999) %>
が、それを before_create のブランドプレフィックスに追加する方法がわかりません。
私は after_create メソッドにあまり詳しくないので、アドバイスをいただければ幸いです。