Уведомления
Очистить всё
Rails и веб
3
Сообщения
3
Пользователи
5
Реакции
622
Просмотры
5 февраля 2025 14:37
Rails 8.0, поставила ограничение на форму обратной связи:
class FeedbacksController < ApplicationController
rate_limit to: 3, within: 1.minute, only: :create
end
На стейдже после третьей отправки приходит 429, как и надо. Локально отправляю сколько угодно, ни одной ошибки, логи чистые. Что не так с development?
2 ответа
5 февраля 2025 19:34
Кеш. rate_limit считает попытки в Rails.cache, а в development по умолчанию :null_store, пока кеш не включён. Он ничего не запоминает, счётчик всегда ноль. Включи bin/rails dev:cache, появится tmp/caching-dev.txt и нормальное хранилище, и ограничение заработает. Или передай хранилище явно через store:.