Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby CSV,如何将两个变量和一个数组写入同一行?_Ruby_Csv_File Io - Fatal编程技术网

Ruby CSV,如何将两个变量和一个数组写入同一行?

Ruby CSV,如何将两个变量和一个数组写入同一行?,ruby,csv,file-io,Ruby,Csv,File Io,嘿,伙计们,我正在写一个ruby程序,它读取CSV格式的食物和食谱数据库,然后将其写回文件。我在正确写入CSV文件时遇到问题 我想将对象属性写入CSV文件 csv_text = CSV.open("FoodDB1.txt","w") do |i| @@dataList.each do |j| if j.get_type == "b" i << [j.name,j.get_type,j.cal] elsif j.get_t

嘿,伙计们,我正在写一个ruby程序,它读取CSV格式的食物和食谱数据库,然后将其写回文件。我在正确写入CSV文件时遇到问题

我想将对象属性写入CSV文件

csv_text = CSV.open("FoodDB1.txt","w") do |i|
    @@dataList.each do |j|
        if j.get_type == "b"
            i << [j.name,j.get_type,j.cal]
        elsif j.get_type == "r"
            i << [j.name,j.get_type,j.print_bFood]
        end
    end
end
我希望它看起来像这样

"PB&J Sandwich,r,Jelly,Peanut butter,Bread slice, Bread slice"
有什么办法可以帮上忙吗。我一直在寻找这样做的方法,但我再也想不到什么了


我的一个想法是,如果我有能力只添加到一行,我可以遍历bFood数组并将每个数组添加到该行,但我还没有找到任何可以做到这一点的功能。

如果我读对了,你应该只需要

i << [j.name, j.get_type, j.bFood].flatten

我啊,非常感谢你!我不明白为什么我找不到这个。现在我知道了如何展平一个数组,我刚刚制作了一个新的数组,它只包含了基本的食物对象名称,并将其写入cvs,效果非常好。谢谢
"PB&J Sandwich,r,Jelly,Peanut butter,Bread slice, Bread slice"
i << [j.name, j.get_type, j.bFood].flatten