2016-09-02 8 views
1

I持っているハッシュ:CSVで保存ハッシュ

users = { 
'name' => name, 
     'last_name' => last_name, 
     'photo' => photo, 
     'address' => address, 
} 

割引:

CSV.open("users.csv", "a") {|csv| users.to_a.each {|elem| csv << elem}} 

出力:

:私は、ファイルを取得する必要が

name, Jake 
last_name,Kallen 
photo, http://avs.ru/leto_3434.jpg 
address, NEW YORK 
name, Dan 
last_name,Leans 
photo, http://avs.ru/leto_3423.jpg 
address, NEW YORK 

Jake,Kallen,http://avs.ru/leto_3434.jpg,NEW YORK 

私の必要なものを得るためにコードを変更するには? お願いします。

UPD:私は、ユーザー

+2

出力の問題以外にも、 'users'は本当に1つのハッシュですか?名前( 'users'、plural)とあなたのユースケースは配列(ハッシュの配列)でなければならないことを示唆しています。 – Stefan

+0

UPD:はい、ありがとうございます 多くのユーザーを指摘するのを忘れました – EKOSM

+0

あなたの質問に応じて更新してもよろしいですか? – Stefan

答えて

0
CSV.open("users.csv", "a") {|csv| 
    csv << users.values 
} 

私はこれが必要だと思います。 usersハッシュには他のデータが含まれている場合 - csvはそれを

に返します。
0

の多くは、これはトリックを行う必要があることを指摘するのを忘れ:

CSV.open("users.csv", "a") do |csv| 
    csv << users.values_at('name', 'last_name', 'photo', 'address') 
end 

あなたがキーによってハッシュ値を抽出してCSV形式のオブジェクトにそれを渡したいですvalues_atが返す配列。

複数のユーザーがいる場合は、質問のサンプルデータを更新してください。

+0

はい、ありがとうございます 私は多くのユーザーを指摘するのを忘れていました – EKOSM

関連する問題