首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails:`before_save`会干扰‘`save?’

Rails:`before_save`会干扰‘`save?’
EN

Stack Overflow用户
提问于 2013-07-21 20:51:56
回答 1查看 427关注 0票数 0

我正在使用seed.rb启动我的应用程序。

代码语言:javascript
复制
#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,并且可能会有一些验证问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-21 20:57:30

.create和.save都会保存记录,并且每个都会触发before_save回调。(如果您不希望保存.create,请更改为Category.new

如果您希望get_external_resources只执行一次,您可以执行以下操作之一:

将其更改为before_save :get_external_resources, on: :create

  • change
  1. get_external_resources,以便只运行一次
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17772537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档