emp_ids = params[:employee_ids]

我正在使用rails中的一个项目,我有一个Employee List页面,这个列表是一个雇员的Salaryslip列表。在该列表中我已经应用了复选框,在底部有一个Send按钮。我想要那个如果我选择多个复选框,电子邮件应该转到所有员工,包括工资单的pdf。我能够这样做,如果我选择复选框点击提交所有salaryslip来为我选择但在那里的员工pdf页面我不能应用电子邮件功能,所以我希望它直接发生。我使用过wicked pdf和actionmailer但是我很困惑如何发送多个员工ID的数组(就像我写的那样)在我的索引页[employee_ids]中,并使用控制器中的params [:employee_ids]访问它,以便Action Mailer发送电子邮件。
答案 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
您需要在公共目录中创建一个名为“pdfs”的文件夹,并在employees目录下创建一个名为“pdf.html.erb”的文件。
所有实例变量都可用于pdf.html.erb文件。
希望它能帮到你