New Rails 7.2: Added Rate Limiting
Ruby on Rails 7.2 added rate limiting to Action Controller. It’s cool and easy to use.
What’s New? #
Rails now offer built-in rate limiting using Redis and Kredis. This empowers you to control how often a user can act within a given time, putting you in the driver’s seat.
Before: #
# Manually implemented rate limiting
After: #
class SessionsController < ApplicationController
rate_limit to: 10, within: 3.minutes, only: :create
end
class SignupsController < ApplicationController
rate_limit to: 1000, within: 10.seconds, by: -> { request.domain }, with: -> { redirect_to busy_controller_url, alert: "Too many signups!" }, only: :new
end
How It Works #
- Setup: Ensure you have Redis and Kredis 1.7.0+.
- Usage: Add
rate_limit
in your controllers.
Why This Matters #
This feature is great for preventing abuse and managing traffic, and it’s also highly flexible. You can customize limits per action and gracefully handle exceeded limits, making it a perfect fit for your needs.
Conclusion #
This update makes managing traffic easier. It’s straightforward and effective. If you’re using Rails, give it a try!
For more details, check out the official pull request .