Rails 8 Coolest Features & Important Deprecations
🚀 Rails 8 Is Here! Coolest Features & Important Deprecations You Need to Know 🔥
Ruby on Rails 8 has finally dropped! 🎉 It comes packed with powerful enhancements, smarter defaults, and some long-overdue cleanups. Whether you’re a seasoned developer or a curious newbie, it’s essential to stay up-to-date with the framework’s direction. Let’s explore the cool new features, important deprecations, and bonus tips to master Rails 8 like a pro! 💎
✨ New Features in Rails 8 You Shouldn’t Miss
1️⃣ Zeitwerk-Only Code Loader (No More Classic Mode)
Rails 8 completely removes support for the old “Classic” autoloader.
✅ What’s cool? Zeitwerk is faster, thread-safe, and brings a more predictable load path.
# Structure
app/models/
user.rb # class User < ApplicationRecord
# Automatically loads User when you reference it!
💡 Tip: Stick to standard naming conventions and folder structure. Zeitwerk relies on it.
2️⃣ Solid Cache Store API
Rails 8 brings a refined caching interface compatible with multi-layered cache backends.
✅ What’s cool? More consistent, extendable, and thread-safe cache store implementations.
Rails.cache.write("article:123", "Hello World", expires_in: 2.hours)
🔥 You can plug into Redis, Memcached, or even custom layers with minimal setup.
3️⃣ Built-in Fiber Scheduler Support 🧵
Async and non-blocking programming is now a first-class citizen!
✅ What’s cool? Rails 8 supports Fiber Scheduler, enabling concurrent HTTP requests, database queries, and file operations without additional gems.
# Automatically leverages Fiber with Puma
Rails.application.config.active_support.scheduler = YourFiberScheduler.new
⚡️ Great performance boost in I/O-heavy apps!
4️⃣ Turbo 8 & Turbo Streams Enhancements
Rails 8 plays even better with Turbo. You get:
- Partial page updates (even more dynamic!)
- Better streaming support
- Built-in transitions
✅ Example:
<%= turbo_stream.append "messages" do %>
<%= render @message %>
<% end %>
💡 Combine with Turbo Frames
and you’ve got a near-SPA experience!
5️⃣ No More jQuery-UJS
Rails 8 drops jquery-ujs completely.
✅ What’s cool? UJS now uses vanilla JavaScript, which means cleaner, lighter frontends.
<!-- Still works! -->
<%= button_to "Delete", article_path(@article), method: :delete, data: { turbo_confirm: "Are you sure?" } %>
🚫 You don’t need jQuery anymore! Bye-bye legacy baggage.
6️⃣ ActiveRecord Improvements 🛢
➤ destroy_later
is now built-in!
Want to queue deletions asynchronously? It’s native now.
@user.destroy_later
Perfect for big data deletions + background jobs!
➤ Enhanced Multi-Database Support
Better control over replicas, failovers, and connection switching.
7️⃣ Encrypted Attributes 2.0 🔐
Rails 8 expands encrypted attributes with more flexibility.
class User < ApplicationRecord
encrypts :email, deterministic: true
end
✅ Works great for privacy-compliant apps (think GDPR & HIPAA!)
🚫 Major Deprecations in Rails 8
❌ 1. Classic Autoloader Gone
Already mentioned, but worth repeating. Make sure your app is Zeitwerk-compatible.
❌ 2. Sprockets Removed by Default
Rails is fully embracing Import Maps, Propshaft, and Webpacker alternatives like Vite.
💡 If you still need Sprockets:
gem 'sprockets-rails', group: :assets
❌ 3. ActiveSupport Core Extensions Cleanup
Several monkey patches from ActiveSupport have been deprecated to ensure better compatibility and performance.
# For example:
5.days.ago # Still works, but some lesser-used methods might be gone.
Check your logs for warnings!
❌ 4. Deprecated Callbacks and Filters
Old-style filters like around_filter
are now completely removed. Use:
before_action :do_something
🎁 Bonus Tips to Rock Rails 8 🚀
✅ 1. Move to Turbo + Hotwire Enhance UX without overcomplicating with React/Vue.
✅ 2. Embrace Async Everywhere
Use destroy_later
, deliver_later
, and Fiber-compatible servers like Puma for max speed.
✅ 3. Use Importmaps or Vite Go minimal or modern. Skip Webpacker headaches.
✅ 4. Monitor Logs & Deprecations Early Use:
rails app:update
…and keep rails server
logs in debug mode during migration.
✅ 5. Explore SolidQueue New async job processing gem, an alternative to Sidekiq in pure Ruby!
👋 Final Thoughts
Rails 8 is all about performance, modernity, and developer joy. 😎 With Turbo Streams, native encryption, improved cache layers, and full async support — it’s made for today’s web.
“Rails is not slowing down — it’s evolving beautifully.” – DHH
Keep building awesome things. 💻💥
📣 Spread the Word!
👉 Follow me on LinkedIn | Medium | Website 🔖 Hashtags: #RubyOnRails #Rails8 #WebDevelopment #CleanCode #Hotwire #Turbo #DevTips #ProductiveDev #CodeNewbie
© Lakhveer Singh Rajput - Blogs. All Rights Reserved.