2017-02-21 108 views
2

通過電子郵件發送PDF格式在Rails的

emp_ids = params[:employee_ids]

我在軌道在那裏我有一個員工列表頁的一個項目工作,該清單是employee.In的Salaryslip的列表名單上有應用複選框,並在底部有一個發送按鈕。我希望如果我選擇多個複選框,電子郵件應該去所有員工,包括工資slip.I能夠做到這一點,如果我選擇複選框點擊提交所有的薪水滑來爲我已經選擇,但在該PDF頁我不能應用電子郵件功能的員工,所以我希望它是直接發生。我已經使用邪惡的pdf和actionmailer,但我很困惑我怎麼可以發送一個由多個員工id組成的數組(像我這樣寫在我的索引頁[employee_ids]中,並使用控制器中的params [:employee_ids]訪問它)發送給Action Mailer以發送電子郵件。

+0

當你檢查每個被檢查的僱員在郵件中獲得工資時,他/她的工資單是正確的嗎? –

+0

是的......我希望在每個員工的電子郵件中使用checkbox.I也寫在ActionMailer中,但sdon知道我可以在電子郵件中渲染如此多的pdf。 –

+0

有誰知道我如何實現這個功能?我迫切需要...... –

回答

1

試試這個,

def generate_slip 
    employees = Employee.where(id: emp_ids) 
    employees.each do |employee| 
    @employee = employee 
    pdf_name = employee.name + Date.today.to_s 
    pdf = render_to_string pdf: "pdf.html.erb", template: "employees/pdf.html.erb", layout: 'layouts/pdf', encoding: "UTF-8" 
    file_path = Rails.root.join('pdfs',"#{pdf_name}.pdf") 
    File.open(save_path, 'wb') do |file| 
    file << pdf 
    end 
    UserMailer.send_file(to: employee.email, subject: "Slip") 
    end 
end 

你需要創建一個文件夾,名爲「PDF文件」到公共目錄和一個文件名員工目錄下名爲「pdf.html.erb」。

所有實例變量可用於pdf.html.erb文件。

希望它能幫助你

+0

但爲什麼需要在公共場合創建pdf文件夾???????? –

+0

來存儲生成的pdf文件,您可以存儲您喜歡的任何地方 –

+0

[4834,5152,5151,5151,5159,5162,5151,5151,5138,5003,4843,5112,4609,4629,5166,4904,4815,4899 ,4738,4675,4724,4699,4699,4608,4969,4898,5125,4856,4922,4880,4880,5079,4673,4889,4889,4780,4902,4691,4939,4791,4631,5025,4647 ,4922,4906,4952,4911,4882,4732,5127,4787,4733,4915,5151,5151,4839,5021,4937,4809,4840,5097,4776,4855,4864,4864,4735,4716,4921 ,4985,4977,5125,4701,4783,4744,4792,5166,4963,4904,4978,4899,4759] –

相關問題