Я знаю, что rails3 переместился в промежуточное программное обеспечение стойки на основе async send_file.Для моего случая использования мне нужно выполнить синхронный блокировку sendfile.Как вы делаете это в Rails3?
class SomeControlle
def send_it
Foo.prepare_file do |f|
send_file f # I want this to be blocking
end
end
end
class Foo
def self.prepare_file(&block)
create tmp file
yield file
ensure
unlink tmp file
end
end
ОБНОВЛЕНИЕ:
Используя предоставленную Амаданом ссылку, я теперь могу блокировать файл в браузере.Мое последнее препятствие состоит в том, чтобы выяснить, почему размер файла показывает в качестве -1 байта в моем prod env, но показывает правильный размер файла локально.
Что у меня сейчас есть:
DocProcessor.new().prepare_for_download(@file) do |f|
# send_file f
response.headers['Content-Type'] = @file.content_type
response.headers['Content-Disposition'] = "attachment; size=\"#{@file.file_size}\"; filename=\"#{@file.original_filename}\""
render :text => open(f, 'rb').read
end
Любая идея, почемуразмер файла в загрузке будет показывать -1 байт?