Rails + MySQL中的发票编号

时间:2014-09-01 13:08:16

标签: mysql sql ruby-on-rails ruby invoices

我希望以这种格式组织发票:

AB20140001

AB是我们公司的首字母缩写,20140001是2014年的第一张发票。目前的快速提示是添加到表invoicesyear和{ {1}}以及将在哪里存储invoice_number以及当前的发票数量(2014为第一个)。

但是,如何将列0001保留为invoice_number格式(第二张发票的数字为XXXX,依此类推)?

或者 - 是否有更好的方法来组织发票编号?

提前谢谢。

1 个答案:

答案 0 :(得分: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