首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清除ActiveRecord对象集合的最有效方法是什么?

清除ActiveRecord对象集合的最有效方法是什么?
EN

Stack Overflow用户
提问于 2013-03-20 09:17:12
回答 2查看 105关注 0票数 0

循环中有一个AR对象集合,可能会多次运行,因此我希望在每次迭代结束时清空集合。

最有效的方法是什么?

编辑1

下面是我使用.clear时发生的情况的一个例子

代码语言:javascript
复制
1.9.3p392 :039 > t = w.tags
 => [#<Tag id: 32451, name: "c++", num_questions: 180854, created_at: "2013-02-25 07:55:55", updated_at: "2013-02-25 07:55:55">, #<Tag id: 32452, name: "performance", num_questions: 28543, created_at: "2013-02-25 07:55:55", updated_at: "2013-02-25 07:55:55">, #<Tag id: 32453, name: "optimization", num_questions: 10021, created_at: "2013-02-25 07:55:55", updated_at: "2013-02-25 07:55:55">, #<Tag id: 32454, name: "language-agnostic", num_questions: 5942, created_at: "2013-02-25 07:55:55", updated_at: "2013-02-25 07:55:55">, #<Tag id: 32455, name: "branch-prediction", num_questions: 28, created_at: "2013-02-25 07:55:55", updated_at: "2013-02-25 07:55:55">, #<Tag id: 32456, name: "books", num_questions: 2667, created_at: "2013-02-25 07:55:59", updated_at: "2013-02-25 07:55:59">, #<Tag id: 32457, name: "ebook", num_questions: 263, created_at: "2013-02-25 07:55:59", updated_at: "2013-02-25 07:55:59">, #<Tag id: 32458, name: "creative-commons", num_questions: 62, created_at: "2013-02-25 07:55:59", updated_at: "2013-02-25 07:55:59">, #<Tag id: 32459, name: "json", num_questions: 39746, created_at: "2013-02-25 07:56:03", updated_at: "2013-02-25 07:56:03">, #<Tag id: 32460, name: "content-type", num_questions: 874, created_at: "2013-02-25 07:56:03", updated_at: "2013-02-25 07:56:03">] 
1.9.3p392 :040 > t.clear
   (19.0ms)  BEGIN
   (85.2ms)  DELETE FROM "questions_tags" WHERE "questions_tags"."question_id" = 10053 AND "questions_tags"."tag_id" IN (32451, 32452, 32453, 32454, 32455, 32456, 32457, 32458, 32459, 32460)
   (36.5ms)  COMMIT
 => [] 
1.9.3p392 :041 > t
 => [] 
1.9.3p392 :042 > t
 => [] 
1.9.3p392 :043 > w.tags
 => [] 
EN

回答 2

Stack Overflow用户

发布于 2013-03-20 09:19:04

内建法

代码语言:javascript
复制
 your_array.clear
票数 3
EN

Stack Overflow用户

发布于 2013-03-20 10:05:04

请看一下Rails文档中的关联clear方法不是Array#clear,它被Rails覆盖。

我只需复制关联中的元素,这将确保关联将被延迟加载,其内容如下:

代码语言:javascript
复制
tags = w.tags.collect{|t| t}
tags.clear
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15519450

复制
相关文章

相似问题

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