2016-02-04 31 views
0

我有一個帳單軌應用程序,我試圖添加一個名爲invoice_number的列和表的主鍵invoice_id我想invoice_number設置保存並增加1 所以每個用戶應該有發票,其中來自1順序號碼多數民衆贊成非主要關鍵

invoice_number開始我想補充的數量僅用於審計的目的,應該爲私有。

我想知道什麼是最好的方式做這樣的事情,這將是

after_save :increment_invoice_number 

    private 
    def increment_invoice_number 
    self.invoice_number = current_user.invoice.count + 1 
    end 

我知道這不會塊的工作,但它什麼樣的即時試圖做的事。 有誰知道我可以做到這一點的方法?

回答

1

下面應該工作...它假定你永遠不會摧毀發票(否則你可能會得到重複發票號結束)

before_save :increment_invoice_number 

private 

def increment_invoice_number 
return if persisted? 
self.invoice_number = user.invoices.count + 1 
end 

注意return if persisted?這意味着你只設置發票的編號爲新記錄,而不是現有的記錄。

相關問題