6

我使用 cloud9 ide 在 Rails 上使用 ruby​​!

我正在测试 gem 'roo' 以将 excel 文件带到我的数据库中。在我这样做之前,我想测试这个宝石工作。

gem doc : https://github.com/roo-rb/roo
但是带文件有问题!

错误信息是这样的

MersmapController#index 中的 IOError

文件 ../assets/test.xlsx 不存在


这是我的代码!

require 'roo'

class MersmapController < ApplicationController         


  def index
      xlsx = Roo::Excelx.new("../assets/test.xlsx")
      @show = xlsx.info
  end
end

在 index.erb 中

<h1> <%= @show %> </h1>



我使用我的“images.jpg”(图像文件)测试此路径

当我在 index.erb 中写入图像文件的路径时,它绝对有效!

我试过了

xlsx = Roo::Excelx.new("../assets/excel/test.xlsx")

xlsx = Roo::Excelx.new("../../app/assets/test.xlsx")

xlsx = Roo::Excelx.new("../../app/assets/excel/test.xlsx")

...... 所有的事情!!

但最后我无法弄清楚问题出在哪里......如果你能帮助我,我将不胜感激!

4

2 回答 2

4

您可以使用Rails.root获取文件的路径名:

xlsx = Roo::Excelx.new(Rails.root.join('app', 'assets', 'excel', 'test.xlsx'))
于 2015-08-27T15:52:17.083 回答
0

我记得曾经发生在我身上,检查这是否解决了您的问题:

xlsx = Roo::Excelx.new(url_to_file, file_warning: :ignore)

于 2015-08-27T15:57:21.507 回答