컨트롤러에 export_csv 메소드가 있습니다.레일 4 ... send_data 후 페이지 새로 고침
def export_csv
if params[:from_date].present? && params[:to_date].present?
@users = User.where("created_at between ? and ?", params[:from_date], params[:to_date])
if [email protected]?
users_csv = User.to_excel(@users)
send_data(users_csv, :type => 'text/csv', :filename => 'users.csv')
flash.now[:success] = "Successfully downloaded the report!"
else
flash.now[:notice] = "No records over selected duration!"
end
else
flash.now[:notice] = "Select from and to date.."
end
end
파일을 다운로드했지만 페이지를 새로 고치거나 다시로드하지 않았습니다. 이로 인해 플래시 메시지는 파일을 다운로드 한 후에도 페이지에 남아있게됩니다.
나는 소수의 사이트를 통과했으며 send_data가 자동으로보기를 렌더링하므로 다른 리디렉션 또는 렌더링을 사용할 수 없음을 알았습니다.
send_data 이후에 페이지를 다시로드하는 방법이 있습니까?
감사합니다. 그것을 할 다른 방법이 없습니까? 배경 작업을 사용하여 파일을 삭제하는 것은 대단한 일일 것입니다. –
음, send_data (파일 내용을 먼저 읽음)를 사용하는 새 메소드'download_csv'를 생성 한 다음 파일을 삭제할 수 있습니다. – Claudix
create _ csv _ file에 쓰여진 내용과 _ report를 다운로드 할 수있는 의사 코드를 도울 수 있습니까? –