9

मैं इसएक्शनकंट्रोलर का उपयोग कर सीएसवी डेटा कैसे डाउनलोड करें :: MongoDB से लाइव?

format.csv do 
    @records = Model.all 

    headers['Content-Disposition'] = "attachment; filename=\"products.csv\"" 
    headers['Content-Type'] ||= 'text/csv' 
end 

की तरह एक नियंत्रक में CSV डाउनलोडर बनाया है अब मैं उद्देश्य के अनुकूलन के लिए इस से CSV डाउनलोड करने के लिए server sent events बनाना चाहते हैं। मुझे पता है कि मैं इसे ActionController::Live का उपयोग कर रेल में कर सकता हूं लेकिन मुझे इसका कोई अनुभव नहीं है।

कुछ एक मुझे समझा सकते हैं कि कैसे मैं कर सकते हैं बैचों के रूप में

  1. क्वेरी रिकॉर्ड
  2. रिकॉर्ड के stream
  3. हैंडल sse ब्राउज़र की ओर से
  4. लिखें रिकॉर्ड CSV फ़ाइलों में जोड़े

अगर मेरी कोई भी धारणा गलत है तो मुझे सही करें। इसे बेहतर तरीके से करने में मेरी सहायता करें। धन्यवाद।

उत्तर

0

Mongoid स्वचालित रूप से अपने रिकॉर्ड के बैचों में (here से अधिक और जानकारी) क्वेरी

एक CSV फ़ाइल में अपने रिकॉर्ड जोड़ने के लिए, आप की तरह कुछ करना चाहिए:

records = MyModel.all 
# By default batch_size is 100, but you can modify it using .batch_size(x) 

result = CSV.generate do |csv| 
    csv << ["attribute1", "attribute2", ...] 
    records.each do |r| 
    csv << [r.attribute1, r.attribute2, ...] 
    end 
end 

send_data result, filename: 'MyCsv.csv' 

याद रखें send_data एक ActionController तरीका है कि !

संबंधित मुद्दे