Waves black and white pattern

How to Write a Clean Order By Case Query with Arel on Rails

You’re working on a feature and someone tells you that one of your models needs to be ordered based on some complicated rule. You realize you’ll need to write a complex order by query… Here’s how it usually goes: You think to yourself: “Should I write an order by case when statement? Maybe I’ll just add a little bit of SQL…" Two minutes later, you end up with a bunch of nested case when statements, subqueries, common table expressions, angry statements, shouting, and a whole lot of tears....

June 10, 2021 · 4 min · Thiago Araujo
Orange and white triangles pattern

What's the Best Way to Learn Webpack?

If you’re feeling lost whenever you have to add some javascript library to your Rails application, this post is for you! I see a lot of people battling against Webpacker whenever they need to add a new javascript library or have to fix a bug on the asset pipeline. I suffered from the same problems, too. I talked about why this happens on a previous post: “Adding Bootstrap or Javascript Sprinkles to Rails breaks everything....

June 5, 2021 · 3 min · Thiago Araujo
Old man yells at Webpack

Adding Bootstrap or Javascript Sprinkles to Rails breaks everything. What should you do?

Did you spend a billion hours trying to add jQuery, or Bootstrap, or Tailwind to your Rails project, but now everything on the frontend is broken? Or worse: you can’t even tell whether the frontend is broken or not. It’s in a unkown state of brokenness. Maybe you just want some javascript sprinkles, but Webpacker makes things so much harder and frustrating. Do you wait until an angry customer complains about the checkout button not working anymore to know which page to fix?...

June 4, 2021 · 3 min · Thiago Araujo
Red and blue shapes pattern

Move From Sprockets to Webpacker On Small to Large Rails Apps

Rails 6 comes with Sprockets and Webpacker by default. Confusing, right? The default configuration is Webpacker for Javascript while Sprockets takes care of all the rest (CSS, images, fonts…). Let me tell you a secret: You don’t need both. Just use Webpacker. Legacy applications and older gems still use Sprockets to serve assets. This was done to add backwards compatibility. If you don’t have a good reason to keep Sprockets around, don’t....

May 24, 2021 · 3 min · Thiago Araujo
red and black pattern

How to pick your first Rails Issue and start contributing to Open-Source

Did you always want to help an open-source project like Ruby on Rails, but never got started? Many people have the interest of contributing to open-source, myself included. I’ve done a couple of small contributions, but nothing fancy. It’s a little intimidating, right? You’re not part of the group of contributors and you don’t really know where to start. You see 800 open issues, which one is a good one to pick?...

May 12, 2021 · 3 min · Thiago Araujo
A black and white pattern

How should I change production data on a new Rails application?

You need to change production data. You know that doing it manually is unsafe and will definetely cause lots of trouble, like corrupting all you customer’s data. How else should you do it? You might be spending a lot of time asking yourself these questions: Is there a proper rails way to change data in production? Should I run data and schema modifications in one database migration? Should I run rake scripts in production to modify data?...

April 13, 2021 · 3 min · Thiago Araujo