What’s new in Rails 5.1?

For each one of us who’s been waiting for the release of the all-new and neat and clean version of Rails 5.1, the wait is over. The new version of Rails 5.1 easily accepts the SPA (Single Page Application) and it also represents a genuine up-gradation in terms of performance and structure of Rails, one of the most popular frameworks. A multitude of improvements such as system testing, encryption, and managing JavaScript dependencies are supported by Rails 5.1

Some Rails 5.1 features are listed below:

Ruby Version

It requires Ruby 2.3.1 or greater version of ruby.

No More RAKE Commands

When we want to run a migration in Rails 4 we need to type rake db:migrate, but in Rails 5.1
this will become rails db:migrate. In Rails 5.1 all the current rake commands will be accessible via the rails command. We can now restart all of our apps with the command rake restart.

App Server

In Rails 5.1 app, by default Puma server is present in Gemfile.

Yarn Support

Yarn is like a Bundler for managing JavaScript dependencies from NPM.with With this we can easily use libraries like React, VueJS, or any other library from the NPM world. It is integrated with the asset pipeline so that all dependencies will work seamlessly with the Rails 5.1 app.

On Debian or Ubuntu Linux, to install Yarn via Debian package repository follow the below command:

Webpacker Support

Webpack can be used to compile Javascript using webpacker gem. It is used to manage modules and dependencies. If we are in the single-page applications, easily we can set up React, Angular, and Vue.js. To start a Rails/React project we can run the below command:

For an existing project, first, we need to add the webpacker gem in Gemfile, then run the above command. In the same way, we create the app for Angular and Vue.js.For more information on webpacker refer to this link https://github.com/rails/webpacker.

New form_with helper

A new form_with helper has been added in Rails 5.1 which combines form_for and form_tag methods.

Direct and Resolved Routes

These two new methods direct and resolved have been added to the Routing DSL.
The direct method allows the creation of custom URL helpers.
Example:

The resolve method allows us to customize the polymorphic mapping of models.

This will generate the singular URL /product instead of the usual /products/:id.

Parameterized Mailers

Now in mailers, we can define before action by passing in parameters to the method. These parameters will be used for all methods in a mailer class, in order to share instance variables, headers, and other common setups.
Example:

New Tag helper

The ActionView tag helper has been changed to provide a cleaner and readable syntax:

System tests

The best solution for system tests on Ruby was using Capybara. Using it currently involves setting up Capybara in our project, along with a strategy for cleaning our database with tools like database_cleaner and launchy gem to help us to debug when an error happens.

Looking to get your app developed? RailsCarma can help! Check out our portfolio to understand how we are helping to change the shape of the software industry by providing Ruby on Rails Developer. Get in touch with us now!

--

--

--

Ruby on Rails Development Company

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Django Many To One Relations

A COMPLETE guide on how to make Docker images even smaller

🦞Lobster Daily #53 — Daily Recap — Apr 21:

Costing Methods: Contribution-Costing Technique

How to design a Database: The Standard Approach

The Accountable Developer

The Developer Urge to Start a New Project (and how to stick to your current ones)

The developer urge to start new projects (and how to stick to current ones) thumbnail

Efficientl Programming With defaultdict() Python

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
RailsCarma

RailsCarma

Ruby on Rails Development Company

More from Medium

How to include nested attributes in a Ruby on Rails post request

Phase-4 | Ruby on Rails!

Rails ActiveRecord Validations

Ensure only one record has specific value for another associated record | Rails 6.1.4