Рельсы рендеринга 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

Вы можете установить любой тип содержимого ответа во вторых параметрах.

Другие вопросы по тегам