2016-06-01 2 views
0

pdf 파일을 렌더링하는 모델 중 하나에서 활성 관리 멤버 작업이 있습니다. 동일한 멤버 동작을 호출하고 싶지만 렌더링하는 대신 콘텐츠를 파일에 저장하고 싶습니다. 여기 render_to_string이 도움이 될 것입니다.하지만 제 질문은 ActiveAdmin 컨트롤러에서 멤버 작업을 호출하는 방법입니다. 이 질문에 대한 해결책이 아니다,하지만 어쩌면 그것은 어떤 다른 도움이 될 것입니다 : 여기에 코드다른 클래스 또는 모델에서 활성 관리 멤버 작업을 호출하는 방법

ActiveAdmin.register MyModel do 
     member_action :generate_pdf do 
     data = get_data 
     render :pdf => "generate_pdf", :layout => false, :margin => { top:  0, bottom: 0, left: 0, right: 0 } 
     end 
    end 

답변

0

주를 단순화된다.

나는 당신이 pdf를 표시하고 PDF를 다운로드하는 동일한 조치를 원한다는 것을 이해한다면? 예인 경우 다운로드 매개 변수를 사용하여이 문제를 해결할 수 있습니다. /admin/model/1/generate_pdf?download=1

ActiveAdmin.register MyModel do 
    member_action :generate_pdf do 
    data = get_data 
    response.headers['Content-Disposition'] = 'attachment; filename=somefile.pdf' if params[:download] 
    render :pdf => "generate_pdf", :layout => false, :margin => { } 
    end 
end 
+0

아니요, pdf를 다운로드하고 싶지 않습니다. 기본적으로 나는 pdf를 프로그램 적으로 파일로 생성하여 메일에 첨부 할 수 있습니다. 렌더링 논리를 호출하여 파일로 저장할 수있는 방법이 있습니까? – Sandeep

+0

활성 관리자는 그렇게 할 방법이 없습니다. 아마 ActionMailer가 그렇게 할 수 있습니다. –