我正在使用 seed.rb 来启动我的应用程序。
#seeds.rb, create categories and see if they are saved or not
categories = Category.create([{name:'name1'},{name:'name2'}, {name: 'name3'} ])
if categories.all?(&:save)
puts "categories saved"
else
puts "categories saved failed"
end
在类别模型中,我有:
before_Save :get_external_resources
所以我可以使用 nokogiri 在我的网站外获取一些东西
问题是当我运行时rake db:seed
,类别将被保存两次。我试过关掉before_save
,它只保存一次。所以我猜想all?(&:save)
并before_save
分别保存了这个数组两次。
我怎样才能避免额外的节省?我需要在对象被保存之前做一些事情,我想知道这些对象在播种时是否被保存。怎么样after_create
?我想我需要添加self.save
方法并且可能有一些验证问题?