This post was originally posted on buildtoship.com by me.
RailsConf is around the corner, that means a new major Rails version is also waiting to be released! In this article, I want to talk about some of the noticeable changes that are confirmed to be in the new version. I will also talk about some changes that are not yet merged but have a high chance of being merged.
In Rails 5 all the current rake commands will be accessible via the
command. When you want to run a migration, you will type
rake db:migrate in
Rails 4. In Rails 5 this will become
The reason for this change is that currently it’s not very logical which command
has to go through
rake and which command should go through
you’re working with rails for a longer time it becomes second nature, but only
because you remember it. For a newcomer, this is a big problem and makes learning
Status: Proposed https://github.com/rails/rails/issues/18878
You can now restart all of your apps with the command
Status: Merged https://github.com/rails/rails/pull/19169
In Rails 5.0 the test helpers
assert_template will be
deprecated. This does not mean you can’t use them anymore. But you have to keep
in mind that they will probably be removed in a later version of rails.
The reasoning about this deprecation is that testing for instance variables and what template is being called in a controller is a bad idea, those are internals of that controller and the controller tests should not care about what ivars are being set. The controller test should be concerned about what cookies are being set, what the HTTP code was and maybe what mutations have happened in the database.
But now you might be thinking: How can I test if the correct values are being set? Well, probably your app will return a status code 500 when certain important ivars are not set. So when you test for correct HTTP status code, you’re covered!
DHH even speaks about the possibility to remove controller test altogether and use Integration tests instead. source
Status: Proposed https://github.com/rails/rails/pull/19058
Rails will only support Ruby 2.2.1 and up. Since it wants to be able to leverage all the speed improvements in the newer ruby versions.
They skipped version 2.2.0 since it has a segfault bug source.
Status: Merged https://github.com/rails/rails/pull/19257
Rails 5 will contain much more performance boosts and other great new features. When more information is available, we will blog about them again! If you want to be kept up to date, you can follow us on Twitter or sign up for our newsletter below.