Question

I am trying to save a pdf file (generated using Rails PDFKit gem) to a paperclip attachment. The MySQL table entry shows following for the paperclip attachment after saving the generated PDF file:

1 | pdf | !ruby/object:File {} | NULL | NULL | NULL |

as against expected value to be something like this format:

resume.pdf | application/pdf | 38375 | 2014-01-30 18:24:34

Can someone please tell me what's going wrong here?

Controller:

html = render_to_string('resume.html.erb',layout: false)
kit = PDFKit.new(html, :page_size => 'Letter')

file_name = "resume"

path = "#{Rails.root}/app/assets/PDF/" + file_name.to_s + ".pdf"
**file** = kit.to_file(path)

document = Document.new(:resume_type=>"pdf")
document.resume_attachment_file_name = **file**
document.save! 

schema.rb

create_table "documents", :force => true do |t|
t.string   "resume_type"
t.string   "resume_attachment_file_name"
t.string   "resume_attachment_content_type"
t.integer  "resume_attachment_file_size"
t.datetime "resume_attachment_updated_at"

Thanks.

Was it helpful?

Solution

The problem is solved. I forgot to add following in model:

has_attached_file :resume_attachment

In addition, I looked at this reference and saved the file in paperclip through File class

 my_model_instance = MyModel.new
 file = File.open(file_path)
 my_model_instance.attachment = file
 file.close
 my_model_instance.save!
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top