2009-09-02 6 views
0

CSV로 내보내기의 경우 전체 2500 개의 레코드가 있으며이를 내보낼 때 은 모든 레코드를 내보내는 데 오랜 시간이 걸리므로형태로 50 번째 학생을 내보내기로 결정했습니다. , 두번째 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의 'unless'키워드는 한 번만 실행됩니다. 'while'또는 'until'을 시도하십시오.

2

어제 우리가 answerthis 어제나요? 나는 더 많은 코드가 있다는 것 외에 다른 두 가지 사이에서 무엇이 바뀌 었는지 정말로 알 수 없다.

+0

지적 해 주셔서 고맙습니다. 중복으로 투표를 종료합니다. –

2

2500 레코드가별로 많지 않습니다. 제 의견으로는이 냄새가납니다. 왜 이렇게 나쁜지를 분류해야 할 것 같은데.