0

在我的 Rails 应用程序中,我有两个模型,Animal并且在表Plant中都有sequence_id列。我想要的是,每次创建新的AnimalorPlant时,它都应该具有唯一性sequence_id

例如,

Animal1 将有sequence_id1

Animal2 将有sequence_id2

Plant1 将有sequence_id3 个

Animal3 将有sequence_id4 个

任何想法如何做到这一点?

有任何 Rails 方法可以做到这一点吗?

4

1 回答 1

1

制作一个名为序列的新模型。植物和动物都应该belong_to这个模型。你会这样做:

在两个 Model.rb 文件中:

class Plant < ActiveRecord::Base
   #Do the same as below to animal.rb as well.
   belongs_to :sequence

   after_create :add_sequence_number

   ....

   def add_sequence_number
     self.sequence = Sequence.create!()
     self.save!
   end
end

确保像这样生成序列模型rails g model Sequence,并进行迁移,将序列添加到 Animal 和 Plant:rails g migration AddSequenceToAnimal sequence_id:integerrails g migration AddSequenceToPlant sequence_id:integer.

验证他们将该行添加add_column :animals, :sequence_id, :integer #or :plants到迁移文件中。

迁移。

享受

于 2013-08-29T05:50:31.343 回答