class BooksController < ApplicationController
def index
@books = Book.all
# Включение стриминга шаблонов
# https://api.rubyonrails.org/classes/ActionController/Streaming.html
render stream: true
end
end
# при запроще с помощью Curl данные будут отдаваться постепенно
class HelloController < ActionController::Base
include ActionController::Live
def stream
response.headers['Content-Type'] = 'text/event-stream'
response.headers["Last-Modified"] = Time.current.httpdate
100.times {
response.stream.write "hello world\n"
sleep 1
}
ensure
response.stream.close
end
end
# https://api.rubyonrails.org/v5.1.7/classes/ActionController/DataStreaming.html
class BooksController < ActionController::Base
include ActionController::Live
def send_file
# Используется для отправки готового файла
send_file(Rails.root.join('public', '404.html'), filename: 'hello.txt')
end
# https://api.rubyonrails.org/v5.1.7/classes/ActionController/DataStreaming.html
def send_data
# Отправляется стриминговый файл, которого изначально нет
data = 'Hello'
send_data(data, filename: 'hello.txt')
end
end
Вам ответят команда поддержки Хекслета или другие студенты.
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
Наши выпускники работают в компаниях:
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.
Зарегистрируйтесь или войдите в свой аккаунт
Задавайте вопросы, если хотите обсудить теорию или упражнения. Команда поддержки Хекслета и опытные участники сообщества помогут найти ответы и решить задачу