Errno :: ENOENT没有这样的文件或目录@ rb_sysopen

时间:2020-02-18 21:20:16

标签: ruby-on-rails ruby

我正在尝试生成一个简单的Docx文件,但出现错误:

ContratosController#page中的Errno :: ENOENT

没有这样的文件或目录@ rb_sysopen-/public/example.docx

我正在使用宝石car骨

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
```

1 个答案:

答案 0 :(得分:0)

您快到了,您只需要编辑一下:

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
相关问题