2009-09-02 78 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条记录不是很多,这个味道在我看来。听起来你应该清楚为什么这是如此糟糕。