我有一个大约1,000,000个ActiveRecord对象的列表,我正在使用Nokogiri构建。现在我在每个对象上调用一个方法来创建一个构建器并返回它。然后我将该构建器编写为已打开的文件:
builder.to_xml
它工作正常,但我想知道我是否可以创建一个空的构建器元素并克隆它(或某些东西,可能与操作一样昂贵)并将其发送到AR实例方法。
答案 0 :(得分:0)
对于1,000,000个对象,我会研究使用ERB或Erubis来使用手工编码的模板生成XML。
Nokogiri正在动态创建每个元素,与已经知道如何为每个对象做什么的进程的速度相比,这是昂贵的。
Erubis比ERB更快,但ERB是Rails的标准。模板可以互换。
另一个替代方法是查看是否可以让数据库根据查询将所选记录作为XML输出。这将是生成数据文件的最快方法。