【发布时间】:2013-04-03 23:23:42
【问题描述】:
我有一个带有以下模型的简单 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 方法不是很熟悉,所以任何建议都将不胜感激!
【问题讨论】:
-
我是这么想的,但后来决定不这样做,因为我不想让客户知道开具发票的数量。如果他们知道业务的繁忙/安静程度,这似乎是个坏主意。
标签: ruby-on-rails-3 random model helper