Ruby on rails 3 什么';这是在rails中为关联项创建自定义id的可靠原因

Ruby on rails 3 什么';这是在rails中为关联项创建自定义id的可靠原因,ruby-on-rails-3,activerecord,business-logic,Ruby On Rails 3,Activerecord,Business Logic,我有一个这样的嵌套资源 资源:项目可以 资源:任务 结束 任务有一个名为number的字段。每当我创建一个任务时,我想在父项目中给它一个序列号 这是我的模型课 class Task < ActiveRecord :: Base belongs_to :project validate_presence_of :title before_create :generate_number private def generate_number

我有一个这样的嵌套资源

资源:项目可以
资源:任务
结束

任务有一个名为number的字段。每当我创建一个任务时,我想在父项目中给它一个序列号

这是我的模型课

   class Task < ActiveRecord :: Base
 belongs_to :project

    validate_presence_of :title
    before_create :generate_number

    private
    def generate_number
        if project.tasks.nil? || project.tasks.count < 1
            self.number = 1
        else
            self.number = list.topics.count+1
        end
    end
end
结束

什么是最好的。根据在我的规格和生产中工作的项目,生成顺序定制taks编号的可靠方法?
任何最佳实践技巧都将不胜感激。

我将在
任务
模型中保留创建前回调,它将调用
生成编号
函数。这应该适用于Factory girl,如果您使用Factory.create,它会添加数字,但当您使用Factory.build时不会添加数字。

before\u save会在每次保存时执行,对吗?这将覆盖每次保存时的id
FactoryGirl.define do 
factory :project do
    name "Hello world"
end
trait :with_tasks do
    ignore do
        number_of_tasks 3
    end
    after :create do |project,evaluator|
        @project.Factory.create_list :taks, evaluator.number_of_tasks, :project => project
    end
end