gpt4 book ai didi

Ruby 遍历所有模型对象,操作每个对象并添加到 CSV

转载 作者:太空宇宙 更新时间:2023-11-03 18:11:01 24 4
gpt4 key购买 nike

我需要遍历 Client 模型的所有对象,进行一些操作以获得数组,然后将该数组附加到 CSV 文件。

我有一个 get 方法,它执行对象迭代并返回一个数组:

def get
Client.find_each do |client|
[client.id, client.name] # How do I return one array at a time?
end
end

然后我有了实际的 CSV 生成方法:

def generate
CSV.open('file', 'w') do |csv|
csv << # How do I get one array at a time from the above get?
end
end

我可以在 generate 中调用 get 并遍历所有结果数组,但这会降低性能。如何在 generate 中一次使用一个数组,由 get 返回?

我相信普查员可以在这方面提供帮助,但我不确定从哪里开始。

最佳答案

Ruby block 来拯救:

def get
raise 'Block required' unless block_given?
Client.find_each do |client|
yield [client.id, client.name] # this will be yielded on each iteration
end
end

def generate
CSV.open('file', 'w') do |csv|
get do |id, name|
csv << [id, name] # this will be called on each `find_each` from above
end
end
end

关于Ruby 遍历所有模型对象,操作每个对象并添加到 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34204973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com