2013-10-25 10 views
6

Obecnie eksportuję plik CSV z mojej aplikacji rails i działa dobrze, ale chciałbym dodać trochę więcej danych do CSV.jak dodać niestandardową kolumnę do CSV podczas generowania w szynach

Obecnie używam:

CSV.generate do |csv| 
    csv << column_names 
    all.each do |item| 
    csv << item.attributes.values_at(*column_names) 
    end 
end 

Aby wygenerować CSV zawierający wszystkie dane z modelu docelowym, ale chciałby, aby dodać dodatkową kolumnę, manufacturer_name które zostaną pobrane z modelu dominującego .. coś jak:

CSV.generate do |csv| 
    csv << column_names, 
    csv << "manufacturer_name" 
    all.each do |item| 
    csv << item.attributes.values_at(*column_names), 
    csv << Manufacturer.find(item.manufacturer_id).first().name 
    end 
end 

Jak to piszę poprawnie tak, że „manufacturer_name” gotowi na nowy nagłówek kolumny i nazwa producenta każdego elementu jest wyciągany i umieścić w odpowiedniej kolumnie?

+0

Jeśli proponowana odpowiedź rozwiąże problem, zaakceptuj go jako odpowiedź. – Tass

Odpowiedz

6
CSV.generate do |csv| 
    names = column_names << 'manufacturer_name' 
    csv << names 
    all.each do |item| 
    row = item.attributes.values_at(*column_names) 
    row << Manufacturer.find(item.manufacturer_id).first.name 
    csv << row 
    end 
end 
+0

Czy możesz wyjaśnić, dlaczego pole pod Producentem jest puste, ale czy obok niego znajduje się tekst? Oto mój przykład z "map_title" http://cl.ly/image/1T170P0C2Y1X – ItsJoeTurner

+0

@ItsJoeTurner, twoje pytanie wykracza poza zakres tego. Polecam badanie samej biblioteki CSV (http://ruby-doc.org/stdlib-2.0.0/libdoc/csv/rdoc/CSV.html) lub zadawanie pytania osobno od tego pytania. – Tass

Powiązane problemy