我有一个发票轨道应用,我正在尝试添加一个名为invoice_number
的列,该表的主键为invoice_id
我希望invoice_number
设置为保存并增加1
因此,每个用户都应该有invoice_number
从1
我想添加的号码仅用于审核目的,应该是私密的。
我想知道做这样的事情的最佳方法是什么
after_save :increment_invoice_number
private
def increment_invoice_number
self.invoice_number = current_user.invoice.count + 1
end
我知道这个块不会工作,但它正是我想要做的事情。 有谁知道我能做到这一点的方法?
答案 0 :(得分: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?
,这意味着您只需为新记录设置发票号,而不是现有记录。