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