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.rootRails プロジェクトの最上位フォルダーを指すため、パスは次のようになります。

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 に答える