Rails at Renuo
We at Renuo are all crazy about Rails. Or maybe "a bit crazy" because of Rails?
It is without a doubt our core competence and has been for a long time. Some of us are privately involved in the ruby/rails community and maintain our own set of gems and projects. The best-known of all is definitely cancancan which Alessandro maintains.
As a Rails-Shops at heart, we are interested in the future development of the framework and its continuation in the ever-changing world of software development. Thus we were all very excited when the first release candidate for Rails 7 landed. This is also why we dedicated a big chunk of our learning week to diving into Rails 7.
For more complex applications Rails will feature easy integration with esbuild, rollup, and webpack. Our clients will certainly be happy when we can spend even more time on their features as opposed to working on our webpack configuration.
We plan to integrate Turbo in most of the applications where some kind of live updating would be an improvement. We are also planning on using Turbo to deliver the client mobile applications with the great integration into their existing web app.
For upgrading an existing application from Turbolinks to Turbo you probably want to check out the great article written by Alessandro. It was already used multiple times to migrate client projects at Renuo.
Information Technology Companies have the obligation to protect and secure user information so that personal information or critical business information isn't leaked to the public. Hackers will of course try to get around barriers and steal information wherever they can. Encryption and Hashing play a big role in this cat and mouse game. With this iteration of Rails we will be able to encrypt information directly on the database level without much setup. Attribute encryption will be as easy as:
class User < ApplicationRecord encrypts :customer_number end
We plan to use this feature to improve the security of personal information in a wide range of our projects.
In addition to all the new features, we will also receive improvements/updates to existing features.
Allowing specifications of excluded entries in a database query.
Previously this would have been achieved by excluding the id of the post in question from the result set.
A method that allows us to schedule multiple queries in a thread pool and fetch their result as needed. This will make it possible to query multiple values at the same time and thus cut the page load time of some applications. A feature that we are looking forward to.
The average aggregation on columns will now respect the column type from the database. This means that there is no longer a dissimilarity between the column type and the return type. This change was implemented by our own Josua Schmid and will come to us in the form of Rails 7.
Sprockets is dead! Long live Propshaft?
Sprockets were the default asset packing mechanism for most rails applications for a very long time. The first commitment to the project was made back in 2008. Since then it has powered a wide range of applications and has served us well... But in the last 14 years, a lot has changed and it is finally time to say goodbye. Rails 7 will no longer ship with the requirement of sprockets. Instead, we are encouraged to use the shiny new Propshaft in its place. An asset delivery tool that was designed with the modern build tools in mind.
We are looking forward to a great future for Rails and look to rely on Rails for many years to come. We are happy to report that we were able to already migrate some projects to Rails 7 to take advantage of the new updates. One of these projects is Herold, where we hope to use Turbo and Stimulus for a smoother experience and easier-to-maintain code.