Все, что я хочу сделать, это получить весь контент из локального файла и сохранить его в переменной. Как?
File.read(@icon.full_filename).each {|l| r += l}
дает мне только его часть. В PHP я просто использовал file_get_contents
.
ruby-on-rails
ruby
Стивен
источник
источник
Ответы:
data = File.read("/path/to/file")
источник
Я думаю, вам следует подумать об использовании,
IO.binread("/path/to/file")
если у вас есть недавний интерпретатор Ruby (например,> = 1.9.2)Вы можете найти
IO
документацию по классу здесь http://www.ruby-doc.org/core-2.1.2/IO.htmlисточник
Отвечая на мой собственный вопрос здесь ... оказывается, что это странность только Windows, которая возникает при чтении двоичных файлов (в моем случае JPEG), для которого требуется дополнительный флаг при вызове функции open или File.open. Я изменил его на,
open("/path/to/file", 'rb') {|io| a = a + io.read}
и все было хорошо.источник
data = File.open("file", "rb") {|io| io.read}