Rails:文件路径

问题描述 投票:0回答:5

我在

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

ruby-on-rails ruby ruby-on-rails-3
5个回答
79
投票
file = File.join(Rails.root, 'app', 'csv', 'names.csv')
File.read(file)

18
投票

你应该这样做:

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


9
投票

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

File.read(File.join(Rails.root, 'app','csv','names.csv'))

4
投票

感谢上面的回答,它对我来说也是这样:

"#{Rails.root}/public/spreadsheets/file_name.xlsx"

0
投票

对我来说,为文件夹路径创建变量并为每个文件添加具有如下文件名的变量是一个好主意:

source = File.join(Rails.root, 'sources', 'folder_with_files')
    
file1 = File.read("#{source}/file1.txt")
file2 = File.read("#{source}/file2.txt")
...
© www.soinside.com 2019 - 2024. All rights reserved.