Internationalization means adapting your application to the language and culture of your users—a difficult task! Luckily, Rails provides the I18n API. In this article, Pavel Tkachenko shows us how to start translating.
Rails defaults to minitest, but much of the community has adopted RSpec—which is right for you? In this article, William Kennedy compares RSpec and Minitest in a new Rails app.
If you're finding performance bottlenecks with full-text search in your database, it may be time to switch to Elasticsearch. In this tutorial, Ianis introduces Elasticsearch and shows us how to implement an efficient search feature in Rails.
Containers are popular because they create a reproducible environment that you can deploy to production and run locally in development. However, containerizing a Rails app can be tricky—Jeff Morhous helps us navigate the pitfalls.
PostgreSQL and MySQL are great for structuring data using relationships, but what if you don't always know the structure up-front? That's where `ActiveRecord::Store` really shines. It's like NoSQL, without changing databases.
Do you need to process a lot of data in real time? Event streaming is a pattern that could help. David Sanchez walks us through how to do event streaming in Rails with Apache Kafka, the popular open-source event streaming platform.
Have you ever wanted to accept payments in Rails? With Stripe Checkout, it's never been easier. Jeffrey Morhous shows us how.
You've probably used `Rails.cache` to read, write, and fetch cached data in Rails—but did you know you can also work with counters? In this series, Jonathan Miles introduces us to some of the lesser-known tools hidden in your Rails codebase.
Race conditions are hard to debug—especially when you don't know it's a race condition! This article looks at some common race conditions and the best solutions for handling each one.
There are many excellent authorization libraries for Rails, but did you know it's not that hard to build this functionality yourself? In this article, Renata Marques shows us how to use the Policy Object Pattern to implement access control in our Rails apps.
S3 is an excellent way to store files scalably and reliably. This article by Jeff Morhous will show you how to use S3 to store files uploaded to a Rails app.
GraphQL is a flexible, strongly-typed query language. It's useful because it gives front-end developers the ability to query the database without many changes to the back-end. In this article, David Sanchez shows us how to design and build our own GraphQL APIs in Rails.
Turbolinks is no longer being developed. It's been superceeded by Turbo, which is part of Hotwire. In this article, Julio Sampaio shows us how to port our existing Turbolinks apps to Turbo.
In the third and final article of our series on the OWASP Top 10 Web Application Security Risks, we’ll explore the lesser-known risks associated with the development of web applications on Rails when it comes to threats involving security misconfiguration, JSON escaping, etc.
Kubernetes is a popular way to deploy web services and applications using containers. In this, the second of a two-part series, Geshan finishes his step-by-step tutorial for getting up and running with Rails and k8s.
It's not every day that you learn a new approach to error handling for Ruby. In this article, Abiodun walks us through a novel error-handling process called Railway Oriented Programming and shows us how to implement it with dry-rb's monads.
Kubernetes has become very popular in recent years as a way to deploy applications using containers. In this article, Geshan shows us how to get a Rails app up and running inside a local K8s cluster.
DynamoDB is a NoSQL database offered by AWS. It can be a great way to avoid adding load to your primary database when you need tens of thousands of reads/writes per second. In this article, Julie Kent walks us through the basics of using DynamoDB with Rails.
The #descendants method is part of Rails. It returns all subclasses that inherit from a given class. In this article, Jonathan Miles shows us how to use this method and how it's implemented. It's a great lesson in the ins and outs of Ruby's object model.
If someone steals your password, they can pretend to be you. That's why many companies provide two-factor or multi-factor authentication via a fingerprint scan, a YubiKey, an authenticator app, or SMS. In this article, Petr Hlavicka will give you a solid foundation of knowledge about multi-factor authentication and will walk you through implementation with Rails, Webauthn, and Devise