web-dev-qa-db-fra.com

Rails: chemin du fichier

J'ai dans app un répertoire appelé csv et dans ce répertoire j'ai un fichier appelé names.csv Je veux utiliser la fonction File.read(path:string) pour lire le fichier.
quel est le chemin d'accès relatif au fichier?

32
socksocket
file = File.join(Rails.root, 'app', 'csv', 'names.csv')
File.read(file)
55
tamersalama

Tu devrais faire: Rails.root.join "app", "csv", "names.csv"

Rails.root renvoie un objet PathName. PathName a une méthode join qui prend n'importe quel nombre d'arguments et l'ajoute au nom de chemin pour créer le nouveau chemin.

Lisez sur PathName # inscrivez-vous ici:

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

11
user566245

Rails.root pointe vers le dossier supérieur de votre projet Rails, donc le chemin serait:

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

Merci pour les réponses ci-dessus, cela a également fonctionné pour moi:

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