Во-первых, это звучит как плохая инженерия, попробуйте переосмыслить вашу модель так, чтобы она получала то, что вам нужно.может быть, если вам нужно создать 10 моделей чего-либо, не используйте ловушки activerecord, иначе вы можете столкнуться с бесконечными циклами.
Я бы порекомендовал
class XYZ < ActiveRecord
def self.create10(original_xyz)
10.times do
clone = original_xyz.clone
clone.save
end
end
end
и где в вашем контроллере иливезде, где вам нужно создать еще 10, звоните:
new_xyz = XYZ.new(:att1 => value1,:att2 => value2,:att3 => self.att1)
new_xyz.save
XYZ.create10(new_xyz)
, но если вам действительно нужно создать еще 10 на крючке (как перед сохранением), выполните:
class XYZ < ActiveRecord
before_save create10
attr_acessor :cloned
def create10
return if cloned # this will prevent infinit loooooooooooooooop
10.times do
clone = self.clone
clone.cloned = true
clone.save
end
end
end
Я не запускал это, поэтому попробуйте сначала.