Reputation:
I'm trying to generate a simple Docx file and I'm getting the error:
Errno::ENOENT in ContratosController#page
No such file or directory @ rb_sysopen - /public/example.docx
I'm using the gem caracal
Routes.rb
Rails.application.routes.draw do
get 'grayscale/index'
get 'contratos/page'
contratos.controller.rb
def page
Caracal::Document.save '/public/example.docx' do |docx|
# page 1
docx.h1 'Page 1 Header'
docx.hr
docx.p
docx.h2 'Section 1'
docx.p 'Lorem ipsum dolor....'
docx.p
# page 2
docx.page
docx.h1 'Page 2 Header'
docx.hr
docx.p
docx.h2 'Section 2'
docx.p 'Lorem ipsum dolor....'
docx.ul do
li 'Item 1'
li 'Item 2'
end
docx.p
end
path = File.join(Rails.root, "public")
send_file(File.join(path, "example.docx"))
end
```
Upvotes: 0
Views: 2544
Reputation: 4440
You almost there, you need just edit a bit:
def page
Caracal::Document.save(Rails.root.join("public", "example.docx")) do |docx|
# page 1
docx.h1 'Page 1 Header'
docx.hr
docx.p
docx.h2 'Section 1'
docx.p 'Lorem ipsum dolor....'
docx.p
...
end
Upvotes: 1