Rails:带范围的自动增量列

7el*_*ant 5 ruby mysql ruby-on-rails

我有项目和问题.问题编号(不是ID)必须是自动增量,但是使用project_id确定范围.任何宝石或简单的方法来实现这一目标?谢谢!

编辑:acts_as_list将完成工作,但如果删除记录怎么办?下一期将是它的号码.

eli*_*jah 3

在你的问题类中:

belongs_to :project
before_validation( :on => :create ) do 
  self.issue_number = self.project.issues.collect { | issue | issue.issue_number }.max + 1
end
Run Code Online (Sandbox Code Playgroud)

(或大约)——本质上,在创建新对象之前,找到与问题项目相关的问题的最大问题编号,增加它,并将其用于新的问题编号......

  • 我想我需要在项目表中有数字字段,并且只是增加它,因为否则如果删除某些内容,下一个将有它的数字。然而,这种方法很巧妙。谢谢。 (2认同)