2014-12-05 6 views
0

PDF를 생성하기 위해 내 레일 앱에서 wicked PDF를 사용하고 있습니다. 그리고 그것은 내 제어 장치 becase 내 개인 함수 generate_pdf에 의해 수행됩니다 구매 과정 후 그 pdf를 생성하고 싶은 메일러 함수는 그 PDF를 사용자에게 보내고 싶습니다.wicked pdf를 통해 PDF 파일을 생성하는 동안 레일즈 앱에서 다중 렌더링 오류가 발생했습니다

오류

Render and/or redirect were called multiple times in this action. Please note that you may only call render OR redirect, and at most once per action. Also note that neither redirect nor render terminate execution of the action, so if you want to exit an action after redirecting, you need to do something like "redirect_to(...) and return". 

코드는 뭔가 거짓말이다.

def place_order 
... some code 

    download_new_pdf(@pur) 
    UserMailer.confirm_order(@pur).deliver 

    format.html { redirect_to(:action=>'order_confirmed/'[email protected][:id].to_s) } 
end 

및 도우미 기능은

def download_new_pdf(id) 

@my_ticket = Purchase.find(id) 
@event = Event.find(@my_ticket[:event_id]) 
render :pdf => "#{@my_ticket[:random_no]}.pdf", 
:template => 'tickets/download_invoice.html.erb', 
:save_to_file => Rails.root.join('public/data/docs', "#{@my_ticket[:random_no]}.pdf") 
end 

PLACE_ORDER 모든 DB 물건을하고 마지막에 생성 PDF로 메일을 보내 형태 페이지로 리디렉션됩니다. 그러나 여기 그것은 나를 여러 나는 퍼팅 반환하지만 여전히 행운을 시도

format.html { redirect_to(:action=>'order_confirmed/'[email protected][:id].to_s) } 

render :pdf => "#{@my_ticket[:random_no]}.pdf", 
    :template => 'tickets/download_invoice.html.erb', 
    :save_to_file => Rails.root.join('public/data/docs', "#{@my_ticket[:random_no]}.pdf") 

의 오류 사촌 렌더링주고, 어떤 도움을 주시면 감사하겠습니다. 감사 !!!

답변

0

오류가 간단합니다. download_new_pdf에 렌더링하고 동시에 place_order으로 리디렉션합니다. PDF 파일을 만들고 파일 시스템에 저장해야 사용자에게 바로 표시되지 않으므로 readme을 확인하십시오. 여기에 PDF를 작성하고 클라이언트에 렌더링하지 않는 방법이 설명되어 있습니다.