Rails Foundation Contributing Member
Ruby on Rails consulting from engineers who work deep in Rails.
Saeloun helps teams modernize Rails applications, improve performance, untangle production issues, and ship product work with a senior Rails and React team in Boston and Pune.
- 606+
- engineering articles
- 2019
- founded in Boston
- Rails
- Foundation member
Latest Rails, React, and engineering articles
Field notes on framework changes, performance, upgrades, testing, and product engineering.
ES2021 replaceAll and Numeric Separators
ECMAScript 2021 introduces replaceAll() method and numeric separators for better string manipulation and number readability.Rails 7 Optimizes remove_columns
Rails 7 optimizes remove_columns to generate a single SQL statement for dropping multiple columns on MySQL and PostgreSQL.Rails 7 now consistently renders button_to
Rails 7 introduced a config that helps button_to consistently render out to the button HTML tag.Rails 7 Retry Jobs Indefinitely
Rails 7 adds :unlimited option to retry_on attempts, allowing jobs to retry indefinitely until the failure is resolved.ActiveStorage Raises PreviewError
Before this update, a failed preview generation would result in a 0-byte file being created – leading to disastrous outcomes in the views.Rails 7 Faster Logger with class_attribute
Rails 7 utilized Ruby's cache for cvars to improve ActiveRecord::Base.logger performance 7x. Let's deep dive into this!ActiveRecord Column-Based Type Casting
Rails 7 now harmonizes results of ActiveRecord::Calculations.average by applying column-based typecasting.Ruby 3.1 Adds Integer.try_convert
Ruby 3.1 adds try_convert for Integer to convert objects via implicit to_int method, returning nil if undefined.React 18 Suspense Improvements
React 18 delays committing everything inside the Suspense boundary (the suspended component and all its siblings) until the suspended data resolves.Rails 7 Adds Absolute Cache Expiry
With the introduction of expires_at to Rails Cache it is now possible to set absolute timestamps for cache expiry.