我有项目和问题。问题编号(不是ID)必须是自动增量,但是使用project_id确定范围。任何宝石或简单的方法来实现这一目标?谢谢!
编辑:acts_as_list将完成这项工作,但如果删除了某条记录会怎么样?下一期将是它的号码。
答案 0 :(得分:3)
在您的问题类中:
belongs_to :project
before_validation( :on => :create ) do
self.issue_number = self.project.issues.collect { | issue | issue.issue_number }.max + 1
end
(或左右) - 基本上,在创建新对象之前,找到与问题项目相关的问题的最大问题编号,增加该问题,并将其用于新的问题编号......
答案 1 :(得分:0)
你可以在Project问题关联上使用counter_cache并覆盖Project的decrement_counter什么也不做。