序列号不是has_many关系的主键

时间:2016-02-04 22:22:38

标签: ruby-on-rails-4

我有一个发票轨道应用,我正在尝试添加一个名为invoice_number的列,该表的主键为invoice_id我希望invoice_number设置为保存并增加1 因此,每个用户都应该有invoice_number1

开始的发票

我想添加的号码仅用于审核目的,应该是私密的。

我想知道做这样的事情的最佳方法是什么

    after_save :increment_invoice_number

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

我知道这个块不会工作,但它正是我想要做的事情。 有谁知道我能做到这一点的方法?

1 个答案:

答案 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?,这意味着您只需为新记录设置发票号,而不是现有记录。