user12768138
user12768138

Reputation:

Errno::ENOENT No such file or directory @ rb_sysopen

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

Answers (1)

Oleksandr Holubenko
Oleksandr Holubenko

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

Related Questions