【问题标题】:Sequential number thats not primary key for has_many relationship序列号不是 has_many 关系的主键
【发布时间】:2016-02-05 06:34:11
【问题描述】:

我有一个发票轨道应用程序,我正在尝试添加一个名为 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

我知道这个块不起作用,但它就是我想要做的。 有谁知道我可以做到这一点的方法吗?

【问题讨论】:

    标签: ruby-on-rails-4


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

    【讨论】:

      猜你喜欢
      • 2016-10-08
      • 1970-01-01
      • 2015-09-06
      • 1970-01-01
      • 2020-07-29
      • 2019-03-26
      • 2012-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多