web-dev-qa-db-fra.com

Lire le contenu d’un fichier local dans une variable de Rails

Tout ce que je veux, c'est obtenir tout le contenu d'un fichier local et le stocker dans une variable. Comment?

File.read(@icon.full_filename).each {|l| r += l}

ne m'en donne qu'une partie. En PHP, je viens d'utiliser file_get_contents.

68
Steven

Répondre à ma propre question ici ... s’avère que c’est un problème particulier à Windows qui se produit lors de la lecture de fichiers binaires (dans mon cas un fichier JPEG) qui nécessite un indicateur supplémentaire dans l’appel de fonction open ou File.open. Je l'ai révisé en open("/path/to/file", 'rb') {|io| a = a + io.read} et tout allait bien.

13
Steven
data = File.read("/path/to/file")
130
zed_0xff

Je pense que vous devriez envisager d'utiliser IO.binread("/path/to/file") si vous avez un interpréteur récent Ruby (c'est-à-dire>> 1.9.2)

Vous pouvez trouver IO documentation sur la classe ici http://www.Ruby-doc.org/core-2.1.2/IO.html

13
Mehdi