2014-09-01 59 views
3

我想有舉辦發票格式如下:發票中的Rails + MySQL的編號

AB20140001 

AB是我們公司的縮寫,20140001是在2014.The第一發票電流速的想法是添加到表invoicesyearinvoice_number並且其中將存儲2014和當前的發票數(第一個爲0001)。

但是,如何將invoice_number列的格式保存爲XXXX(對於第二張發票將是數字0002等等)?

或者 - 有沒有更好的方法來組織發票編號?

預先感謝您。

+0

你可以在MySQL中做到這一點,但你需要一個觸發器。 – 2014-09-01 13:10:28

回答

2

我會做一個運行後創建和設置序列號

我們使用:after_create這樣我們就可以使用:id它被設置後的功能。

class Invoice < ActiveRecord::Base 
    after_create :set_invoice_numeber 

    def set_invoice_number 
    self.update_attribute(:invoice_number, 'AB' + Time.now.year + '%.4d' % id) 
    end 

end 
+0

'id'將被設置'after_create',所以他應該使用它。另外,我假設在2015年他想從「AB20150001」開始。你的答案不提供解決方案。 – Mischa 2014-09-01 13:33:58

+0

謝謝@Mischa,我會解決我的答案 – 2014-09-01 13:34:38