Рельсы рендеринга HTML из стойки
Я использую стойку атаки. Если кто-то превышает лимит, я использую следующий код:
Rack::Attack.throttled_response = lambda do |env|
[429, {}, [ActionView::Base.new.render(file: 'public/429.html')]]
end
Когда sby превышает лимит на запрос POST, где исходный ответ будет respond_to :html
затем рендеринг 429.html
работает отлично. Когда лимит превышен запросом POST, который отвечает на respond_to :js
тогда ничего не происходит на экране, но если я проверяю логи, все, кажется, хорошо:
Rendered public/429.html (1.4ms)
Как я могу отобразить 429.html
в случае js response
? Можно ли сдать error messages
из этого кода стойки в приложение rails как-нибудь? Я могу поменять на error messages
от rendering
если это не так сложно.
1 ответ
Rack::Attack.throttled_response = lambda do |env|
html = ActionView::Base.new.render(file: 'public/429.html')
[503, {'Content-Type' => 'text/html'}, [html]]
end
Вы можете установить любой тип содержимого ответа во вторых параметрах.