39

我在app一个名为的目录csv中,在这个目录中我有一个名为的文件,names.csv 我想使用File.read(path:string)函数来读取文件。
文件的相对路径是什么?

4

4 回答 4

70
file = File.join(Rails.root, 'app', 'csv', 'names.csv')
File.read(file)
于 2012-10-30T20:45:36.887 回答
15

你应该做:Rails.root.join "app", "csv", "names.csv"

Rails.root 返回一个 PathName 对象。PathName 有一个join方法,它接受任意数量的参数并将其附加到路径名以创建新路径。

在此处阅读 PathName#join:

http://www.ruby-doc.org/stdlib-1.9.3/libdoc/pathname/rdoc/Pathname.html#method-i-join

于 2014-12-17T19:59:39.600 回答
8

Rails.root指向 Rails 项目的顶层文件夹,因此路径为:

File.read(File.join(Rails.root, 'app','csv','names.csv'))
于 2012-10-30T20:46:13.863 回答
3

感谢以上答案,它也对我有用:

"#{Rails.root}/public/spreadsheets/file_name.xlsx"
于 2016-09-16T12:28:12.110 回答