Я использую следующий код для выполнения запроса на сервере внутри задачи граблей:Принуждение app.get Rails, чтобы повторить запрос
app = ActionDispatch::Integration::Session.new(Rails.application)
app.host!('localhost:3000')
app.get(path)
Это хорошо работает.
Однако, если я снова вызываю app.get(path)
с тем же путем, запрос не повторяется и возвращается предыдущий результат.
Есть ли способ заставить приложение app повторить вызов?
Откуда вы знаете, что второй 'app.get (path)' не повторяет запрос? Я просто просмотрел код для «ActionDispatch :: Integration :: Session», и никаких признаков кэширования там нет. – henrikhodne
@henrikhodne любой 'puts' присутствует в методе контроллера, который обслуживает маршрут, будет выводиться только по первому запросу. –
@henrikhodne, вы правы. Это не «ActionDispatch :: Integration :: Session», выполняющее какое-либо кэширование, но стандартный кеширующий рельсы делает это, как со стандартным HTTP-запросом. Я уточнил в своем ответе. –