У меня есть шаблон для заполнения пользователем.Моя цель - преобразовать шаблон в pdf (содержащий информацию, предоставленную пользователем), используя wicked_pdf.
Кроме того, ни один из вводимых пользователем данных не влияет на модель / базу данных.Мне просто нужно преобразовать шаблон в PDF-файл, содержащий данные пользователя, и ничего более.
Пока что я могу преобразовать шаблон в PDF-файл, сохранить его и перенаправить обратно в представление индекса.Однако ни одно из полей, заполненных пользователем, не сохраняется;все поля, которые содержали ввод или значения, введенные пользователем, являются пустыми.Это просто сохранение пустого шаблона.Как я могу преобразовать PDF и предоставленные пользователем данные в PDF, используя wicked_pdf?
# controller save method --->
def save_grade_sheet
@result = Result.find(params[:id])
if current_user.admin?
filename = "#{@result.user.last_name}_grades.pdf"
save_path = "#{Rails.root}/public/uploads/#{@result.user.last_name}/#{filename}"
respond_to do |format|
pdf = render_to_string pdf: filename,
template: "/results/grade_sheet.html.erb",
encoding: "UTF-8",
disposition: "attachment",
save_to_file: save_path,
save_only: true
File.open(save_path, "wb") do |file|
file << pdf
end
flash[:notice] = "#{filename} successfully saved"
format.html { redirect_to results_path }
end
else
head :unauthorized
end
end
# sample template code
<div>
<div>
<h2>PERSONNEL INFORMATION</h2>
<p>Examinee's Name: <%= @result.user.first_name %> <%= @result.user.last_name %></p>
<p>Examiner's Name: <input class="inline" type="text"></p>
</div>
<div>
<p>Exam Type: <%= @result.test.upcase %></p>
<p>Exam Version: <input class="inline" type="text"></p>
<p>Exam Date: <%= @result.created_at.strftime("%m-%d-%y") %></p>
</div>
<%= button_to "Create Grade Sheet", save_grade_sheet_result_path(@result), data: { method: :post }, class: "btn btn-primary btn-lg"%>
</div>