由网友(低调渲染那一抹妖娆°)分享简介:pg-ruby允许您一次向数据库发送多个查询,这有助于最大限度地减少对数据库的访问次数:results = []conn.send_query('QUERY1;QUERY2;QUERY3')conn.blockwhile result = conn.get_resultresults << resultend对...
pg-ruby
允许您一次向数据库发送多个查询,这有助于最大限度地减少对数据库的访问次数:
results = []
conn.send_query('QUERY1;QUERY2;QUERY3')
conn.block
while result = conn.get_result
results << result
end
对于我已经知道的任何result
活动记录模型,将结果转换为模型的适当方式是什么?目前我正在执行以下操作:
fields = result.fields
models = result.values.map { |value_set|
Model.new(Hash[fields.zip(value_set)])
}
该方法的问题在于,每个活动记录对象似乎都不是#persisted?
,因为它们是用.new
实例化的。
推荐答案
我认为您需要的是ActiveRecord::Base.instantiate
方法。它将正确处理new_record?
/persisted?
问题,并为单表继承找到正确的类。
例如:
fields = result.fields
models = result.values.map { |value_set|
Model.instantiate(Hash[fields.zip(value_set)])
}
相关推荐
最新文章