鉴于情景:
检索 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等)都没有任何相似之处,它应该能够被识别为伪数据以供将来处理。
答案 0 :(得分:1)
尝试用collection << somefakehash
替换collection.append(somefakehash)
。 According to the docs,<<
运算符会立即触发更新SQL,而无需等待父级的保存或更新。