在Rails中打开csv文件服务器端(heroku)

时间:2014-01-14 14:26:54

标签: ruby-on-rails ruby csv heroku

我有一个本地开发Rails环境,我在控制器中有这个代码:

  def csv_to_array(file)
    @comment_array = []
    CSV.foreach(file, :col_sep => ",", :headers => true) do |column|
      @comment_array << column['Phrase']
    end
    @comment_array
  end

csv_to_array('../hub/data/comment_file.csv')

这在我的本地环境中运行良好。它打开csv文件,并将其解析为数组。这里的根rails目录是hub

但是 - 当我将此应用程序推送到heroku并尝试运行相同的代码服务器端时,它会出错,因为它无法找到该文件。如何打开csv文件服务器端?只是位置发生了变化,还是我还缺少其他东西?

1 个答案:

答案 0 :(得分:2)

在本地环境中,您正在从Rails根目录运行Ruby进程。这就是您可以使用'../hub/data/comment_file.csv'(或可能只是'./data/comment_file.csv'

找到文件的原因

然而,Heroku和许多其他主机将从其他位置运行它。

您必须指定文件的完整路径:

File.join(Rails.root, 'data/comment_file.csv')