我有一个带有以下模型的简单 Rails 3 发票应用程序:
Brand
Client
Invoice
一个品牌有很多张发票,客户有很多张发票,发票属于客户和品牌。基本上,品牌是创建发票的公司,客户是发票的接收者,发票是实际发票。
我正在尝试找出最好的方法,让每张发票都有一个简单的随机参考号,每个发票都以每个品牌独有的东西为前缀。
我正在考虑将 invoice_prefix 添加到品牌表中。然后每个品牌都有一个三位数的前缀,例如DAN-
.
将品牌前缀后跟 5 位随机数添加到发票表中的列的最佳方法是什么?
我愿意接受有关更好方法的建议!
我想要的最终结果是每张发票都有一个类似于DAN-98372
.
我认为最好的方法是将前缀列添加到品牌表中,然后为发票创建一个 before_create 操作,在品牌前缀之后插入一个随机数。我只是不确定最好的方法来做到这一点。
before_create :generate_reference
private
def generate_reference
self.invoice_number = self.brand.prefix
end
上面的代码正确地提取了品牌前缀,但我不确定之后如何添加一个随机的 5 位数字。
我认为类似的东西<%= rand(1000..9999) %>
会起作用,但我不确定如何将其添加到 before_create 中的品牌前缀中。
我对 after_create 方法不是很熟悉,所以任何建议都将不胜感激!