Rails 3如何将假记录附加到ActiveRecord数组?

时间:2012-09-19 20:16:13

标签: ruby-on-rails-3 activerecord

鉴于情景:

  

检索 X 来自“ ModelA ”的记录数量,   然后对所述集合执行处理以构建记录   “ ModelB ”,但 X 必须达到偶数才能处理到   发生和处理必须发生,即使 X 是奇数。

是否有可能伪造集合中的单个记录以获得偶数,以便成功处理?

为您举例说明我正在尝试做什么......

def generate_some_modelb_data
  collection = ModelA.somemethod
  #append fake record if collection is an odd number
  if collection.count%2 > 0
    collection << somefakehash
  end
  #process the collection
  ...
  ModelB.create(:attribute_a => processed_data, :attribute_b => processed_data....)
end

我不想在ModelA中存储任何虚假数据,但如果我附加到集合的假数据存储在ModelB中,如果它允许我正确处理合法数据,那就没关系。我还应该补充一点,无论附加的伪数据是否与现有的ModelA记录(即ID等)都没有任何相似之处,它应该能够被识别为伪数据以供将来处理。

1 个答案:

答案 0 :(得分:1)

尝试用collection << somefakehash替换collection.append(somefakehash)According to the docs<<运算符会立即触发更新SQL,而无需等待父级的保存或更新。