【发布时间】:2014-07-01 19:25:08
【问题描述】:
我有一个 ActiveRecord 对象 (x),其中包含一些记录。
首先,我想创建一个空记录集 (y)。类似的东西:
y = x.class.new EDIT: -or- y = ActiveRecord::Relation.new
其次,我想将记录从 x 复制(复制)到 y。类似的东西:
y << x.first.dup
我该怎么做? (有可能吗?)
我在第一行有一个错误,说缺少一个参数。我可以使用此方法创建新字符串,但不能使用 ActiveRecord 对象。
# x.class : ActiveRecord::Relation::ActiveRecord_Relation_Analysis
x = Analysis.where(category: 6)
# In a helper ...
# The x object is not always an Analysis. So I must use its class
y = x.class.new
最后一行出错:
ArgumentError: wrong number of arguments (0 for 1+)
from .. /activerecord-4.0.1/lib/active_record/relation/delegation.rb:76:in `new'
【问题讨论】:
-
可以在同一问题的回答中找到答案stackoverflow.com/questions/60033/…
-
x是ActiveRecord::Relation对象吗? IE。x是ActiveRecord查询的结果,例如Post.where(...)? -
@p11y 是的。它实际上是一个 ActiveRecord::Relation,是对数据库的查询结果。
-
不完全是。我查看了问题stackoverflow.com/questions/60033/… 及其所有答案。我没有找到如何创建空集。我只想从一个空的集合中复制几条记录。
标签: ruby-on-rails ruby ruby-on-rails-4