With each new release, Rails introduces innovative features that enhance productivity and make web development a delightful experience. Rails 6 is no exception, bringing a number of eagerly awaited features and changes. This article aims to familiarize you with the key features added to Rails 6 and outline how they can help make your applications better, thus saving valuable development time.
Requirements
Before diving into the new features, it’s important to note that Rails 6 requires Ruby 2.5+ and upgraded databases.
Key Features of Rails 6
Multiple Database Support
This enhancement allows developers to configure models to connect with different databases, facilitating the development of applications that utilize multiple data sources. Whether you’re building a microservices architecture or need to integrate with external systems, Rails 6 makes it easier to manage and query data from diverse databases.
Webpack as the Default Bundler
The adoption of Webpack as the default JavaScript bundler through the webpacker gem, replaces the Rails Asset pipeline, which aligns with modern JavaScript frameworks for front-end development.
Action Text
With Action Text, users can effortlessly format text, insert images and videos, and create links, all within an intuitive interface. In Rails 6, it is a significant enhancement that brings advanced rich-text editing features. It seamlessly incorporates the Trix editor into Rails, making it easy to manage rich content in applications.
Action Cable Enhancements
The new update makes it easier to connect client-side JavaScript with server-side applications by introducing direct JavaScript module imports to Action Cable. Moreover, developers can now scale their applications across various database systems effortlessly, thanks to the added support for multiple databases.
Bulk Insert and Upsert
insert_all
and upsert_all
for bulk inserting and upserting records. These methods do not fire any callbacks and execute a single SQL query, making the code more optimized.
Parallel Testing
With Rails 6, it is now possible to perform parallel testing, allowing developers to run their test suites concurrently. This functionality greatly decreases the time needed to complete tests, boosting developer efficiency by enabling faster feedback and expediting the testing process.
Security Enhancements
Rails 6 brings notable security upgrades, including support for Host Authorization to guard against DNS rebinding attacks and improved cookie security to prevent attacks that attempt to copy the signed/encrypted value of a cookie.
Credentials in Rails 6
Rails 6 improves the handling of sensitive information with per-environment credentials, replacing the need for .env files. This ensures different keys for development and production environments are managed securely.
Action Mailbox
Action Mailbox is a major enhancement in Rails 6, designed to make managing incoming emails more straightforward. With Action Mailbox, it’s possible to develop automated workflows for processing emails, such as transforming them into comments or forum entries. This functionality simplifies email integration, facilitating the development of robust applications with built-in email features.