After a long wait, the stable version of Rails 6 is finally available for users. Five days ago, David Hansonn, the Ruby on Rails creator, released the final version, which has many new major features such as Action Mailbox, Action Text, Parallel Testing, and Action Cable Testing. Rails 6 also has many minor changes, fixes, and upgrades in Railties, Action Pack, Action View, and more. This version also requires Ruby 2.5.0+ for running codes.
Hansonn says, “While we took a little while longer with the final version than expected, the time was spent vetting that Rails 6 is solid.” He also informs that GitHub, Shopify, and Basecamp and other companies and applications have already been using the pre-release version of Rails 6 in their production.
Rails 6.0: Action Mailbox, Action Text, Multiple DBs, Parallel Testing, Webpacker by default, and Zeitwerk! What a monumental final release. Massive upgrades, intense conceptual compression. Our Best Rails Yet! https://t.co/DQEzRKSChr
— DHH (@dhh) August 16, 2019
Major new features in Rails 6
This new framework can direct incoming emails to controller like mailboxes, such that user can use it for processing in Rails. Action Mailbox ships with access to Amazon SES, Mailgun, Mandrill, Postmark, and SendGrid. It is also possible to control inbound mails via the built-in Exim, Postfix, and Qmail ingresses.
These inbound emails are transformed to InboundEmail records using Active Record. They can also be routed asynchronously using Active Job to one or several dedicated mailboxes.
To know more about the basics of Action Mailbox, head over to action mailbox basics.
Action Text includes the Trix editor that can handle formatting, links, quotes, lists, embedded images, and galleries. It also provides rich text content which is saved in the RichText model associated with the existing Active Record model in the chosen application.
To get an overview on Action Mailbox, read the action text overview page.
Parallel Testing allows users to parallelize their test suite, thus reducing the time required to run the entire test suite. The forking process is the default method used to do parallel testing.
To learn how to do parallel testing with processes, check out the parallel testing page.
Action Cable Testing
Action Cable testing tools allows users to test their Action Cable functionality at the connections, channels and broadcast levels.
For information on connection test case and channel test case, head over to the testing action cable.
Other changes in Rails 6
Railties handles the bootstrapping process in a Rails application and also provides the Rails generators core.
- Multiple database support for rails db:migrate:status command has been added.
- A new guard has been introduced to protect against DNS rebinding attacks.
The Action Pack framework is used for handling and responding to web requests. It also provides mechanisms for routing, controllers, and more.
- Rails 6 allows the use of #rescue_from for handling parameter parsing errors.
- A new middleware ActionDispatch::HostAuthorization has been added to guard against DNS rebinding attacks.
Developers are excited to use the new features introduced in Rails 6, especially the parallel testing feature.
A user on Hacker News comments, “Wow, Multiple DB and Parallel Testing is super productive.
I hope framework maintainers of other language community should also get inspired by these features.”
Another comment reads, “The multiple database support is really exciting. Anything that makes it easier to push database reads to replicas is huge.”
Another user says, “Congrats to the Rails team ! I can’t praise Rails enough. Such a huge boost in productivity for prototyping or full production app. I use it for both work or side project. I can’t imagine a world without it. Long live Rails!”
Twitteratis are also praising the Rails 6 release.
We've been testing against Rails 6 at work for a while now, and this is really the best release so far. A huge effort, and not just from the core team. Thanks to everyone that made this possible! 🙇♀️🙇♀️ https://t.co/SZNfHQeIMn
— Aaron Patterson (@tenderlove) August 17, 2019
— Avinasha in New York (@AviShastry) August 17, 2019
— Chris Oliver (@excid3) August 16, 2019
To know about the minor changes, fixes, and upgrades in Rails 6, check out the Ruby on Rails 6.0 Release Notes.
Head over to the Ruby blog for more details about the release.