2009-09-02 100 views
0

導出爲CSV,我總共有2500條記錄,並在出口時 需要很長時間導出所有記錄,所以,我決定以 出口前50名學生的形式,並且,第二十名學生,等等。我試過 下面的代碼。但它只能取得前50名學生。 請指導我如何解決這個問題CSV導出問題在紅寶石

def exportcsv 

    @student_count = Student.find(:all) 

    @count1 = @student_count.count 

    st_per_file = 50 

    count = 0 

    unless @count1==count 

    students = Student.find(:all, :order => 'name', :limit => 
       st_per_file, :offset => (st_per_file*count)) 

    count = count + 1 


filename = 'students.csv' 

    headers.merge!(

    'Content-Type' => 'text/csv', 

    'Content-Disposition' => "attachment; filename=\"#{filename}\"", 

    'Content-Transfer-Encoding' => 'binary' 
) 
-------------- 
-------------- 
    end 

end 

回答

0

你需要有一個循環做到這一點。 Ruby的'除非'關鍵字是否定的,如果且僅運行一次。試試'while'或'until'。

2

我們不是隻是answerthis昨天?我並不真正看到兩者之間有什麼變化,現在有更多的代碼。

+0

感謝您指出,四。投票結束重複。 – 2009-09-02 08:22:57

2

2500條記錄不是很多,這個味道在我看來。聽起來你應該清楚爲什麼這是如此糟糕。