Saeloun Blog
Practical Ruby on Rails engineering articles from Saeloun, a Rails Foundation Contributing Member helping teams modernize, scale, and maintain Rails applications.
- Posts
- 600 from 26 Feb 2019 to 25 Oct 2026
- Posting
- weekly (44 in the last year)
- Kind
- company blog
- Feed
- https://blog.saeloun.com/feed.xml
2026 25
- Rails 8.2 drops Marshal message fallback
- Rails 8.2 adds Relation#default_order
- Building free websites and apps for Pune businesses
- When Rails World Met Pune’s Ruby Community
- Running Campfire With Roundhouse and Spinel
- Rails 8 Introduces Kamal 2 For Zero Downtime Deployments
- Rails 8 Solid Queue: Database-Backed Background Jobs
- Rails 8 Solid Cache: Database-Backed Cache Store
- Rails 8 SolidCable: Database-Backed WebSockets Guide
- Rails 8.1 Adds Native Markdown Rendering Support
- Migrating from Sprockets to Propshaft in Rails 8
- Rails 8 Adds Thruster as the Default HTTP/2 Proxy Server
- Rails Containerization Best Practices
- My Ever-Improving AI Setup for Rails Work With gbrain and gstack
- Building a Private Karpathy-Style LLM Wiki With gbrain and gstack
- Rails Authorization Patterns: Pundit, CanCanCan, and Action Policy
- Rails Security Best Practices: A Comprehensive Guide
- Different Approaches to Debugging Query Performance in Rails
- Ruby Concurrency Beyond Fibers: Threads, Ractors, and True Parallelism
- Upgrading from Rails 7.2 to Rails 8 - The Latest and Greatest
- Upgrading from Rails 6.1 to Rails 7 - The Modern Stack
- From Idea to Launch: Why Rails Remains the Ultimate MVP Framework in 2026
- Rails 8.1 introduced except_on option for validations and callbacks
- Mobile First Design for Consultancies
- Rails 8.1 update_all with joins Support
2025 33
- Rails 7.1 lets change_table pass validate_check_constraint
- Rails 8.1 now sorts table columns
- Rails 5.2 to 6 A Complete Upgrade Guide
- What Is New In Ruby 4.0
- Rails 4.2 to 5 A Complete Upgrade Guide
- Rails 8.1 Structured Event Reporting
- Rails 8.1 introduces bin/ci to standardize
- Accessibility Best Practices for Consultancy
- Planning Rails Upgrade - A Strategic Guide
- Rails Composite Primary Keys Evolution
- A Guide to Web Application Monitoring
- Non‑Blocking IO.select in Ruby: Introduction
- Customizing Rails Migration Strategies
- Clean Up Rails Logs: Ignoring SQL Warnings
- UI/UX Audit Checklist Before Redesign
- Rails 8 ActiveStorage::Blob#open Upgrade
- Building Personas for B2B Consultancy
- Rails 7.1 Error Reporting Test Helpers
- Rails 8 Conditional allow_nil/allow_blank
- Lexxy - Modern Rich Text Editor for Rails
- Rails Decouples Trix Into action_text-trix
- Rails 8 Dev Container Without Redis
- Rails Deprecated Associations with Reporting
- New features in ECMAScript 2025
- Rails Self-Join UPDATE for Outer Joins
- Rails 8 adds built in authentication
- Rails Stops Generating bin/bundle Binstub
- Rails 8 Removes Default Channels Folder
- React 19 Ref as Prop & Cleanup Functions
- Rails ActiveModel Normalization
- Rails Strong Parameters Deep Dive
- Rails 8 Script Folder and Generator
- Rails 8 ISO 8601 TimeWithZone#inspect
2024 81
- What Is New In Ruby 3.4: Key Features
- Rails 8 add_enum_value if_not_exists
- Rails 8 Parameters#expect Method
- Rails 8 drop_table Accepts Array
- WebAuthn Passwordless Auth in Rails
- Rails 8 Multiple Rate Limits Per Controller
- Rails 7.2 explain Method Enhancements
- Rails 7.1 Counter Methods Accept By Arg
- Rails 7.1 application.deprecators Method
- Rails 7.1 Validators Accept Lambdas
- Rails 7.2 Job Scheduling in Transactions
- Rails 7.1 Array#intersect? for AR Relations
- Rails 7.1 Controller Generator --parent
- Rails 7.1 Reserved Attribute Name Error
- Rails 7.1 --unused Routes Option
- Rails inverse_of in Associations
- Rails 7.1 exclude? and extract_value Methods
- Rails 7.1 in_batches Descending Order Fix
- Rails 7.1 after_discard for ActiveJob
- Rails 7.1 AR Transaction Instrumentation
- Rails 7.1 Disallow Foreign Keys Option
- Rails 7.1 Readonly Attribute Error
- Rails 7.1 Multiple Mailer Preview Paths
- Rails 7.1 Logs Job Enqueue Callers
- Rails Ignore Counter Cache on Backfill
- Rails 7.1 Composite Key Batch Ordering
- Rails 7.1 *_deliver Mailer Callbacks
- Sidekiq To SolidQueue Migration
- What Is New In Rails 7.2: Key Features
- Rails Warns On Tests Without Assertions.
- Rails in_order_of Filter Option
- Rails 7.1 Composite Primary Key Support
- Rails 7.2 Adds Support For Devcontainer.
- Functional Programming In React
- CSS Units Guide - rem, em, px, vh, vw Explained
- Controlled vs Uncontrolled Components in React
- Rails SKIP_TEST_DATABASE_TRUNCATE Flag
- Puma-dev: Run Multiple Rails Apps Locally
- Rails 7.2 app:update as Rails Command
- Rails after_all_transactions_commit Callback
- Rails with_connection for DB Optimization
- Ruby 3.4 Makes "it" As Default Block
- BatchEnumerator#destroy_all Returns Count
- Rails 7.2 Blob#compose Custom Key Support
- Ruby 3.4 Keyword Args in Index SyntaxError
- Explore new hooks coming up in React 19
- Rails 7.2 order Supports Hash Values
- Rails 7.2 PG Adapter Date Type Casting
- Ruby 3.4 Block in Index SyntaxError
- Rails 7.2 n_plus_one_only Strict Loading
- Ruby 3.4 Deprecation Warnings for Mutable String Literals
- Ruby 3.4 Range#size TypeError Fix
- Rails 8 adds Kamal by default.
- Ruby 3.4 **nil No Longer Raises TypeError
- Rails validate_foreign_key for Data Integrity
- Rails 7.2 GitHub CI Workflow by Default
- Rails 7.2 pluck and pick Accept Hash for Joins
- Rails Log Output with SQL Query Count
- A Quick Guide to Ruby's Time and DateTime
- Rails 7.2 adds Rubocop by default to new
- Rails 7.2 Rate Limiting in Controllers
- Rails 7.2 adds allow_browser to set minimum
- Rails 7.1.2 Ignores Implicit Strict Locals
- Rails 7.2 Adds Brakeman gem by Default
- Rails 7.1 explain Accepts Options
- Next.js vs. Remix - A Developer's Dilemma
- Rails 7.1 ActiveRecord regroup Method
- React.memo vs useMemo Performance Guide
- Rails 7.1 allows resetting singular
- What is New in Ruby 3.3: Key Features
- Rails ErrorReporter#unexpected Method
- Rails 7.1 Disable Enum Auto-Methods
- Upsert Respects on_duplicate with unique_by
- Ruby 3.3: String.dup Now as Fast as String#+
- ActiveStorage Pre-processes PDFs & Videos
- Rubygems :file Option for Ruby Version
- Rails 7.1 path_params for url_for
- JS Object.groupBy and Map.groupBy Methods
- Ruby 3.3 Range#reverse_each Improvements
- Tailwind vs Bootstrap: A Comparison
- Rails 7.1 Enum Validate Option
2023 77
- Demystifying Closures in React
- Fly Postgres Backup to S3 via GitHub Actions
- Ruby 3.3 Duplicate Keyword Argument Fix
- Rails 7.1 reselect Accepts Hash Values
- Ruby 3.3 Introduces Range#overlap? method
- Rails Dual Database Setup for Performance
- Ruby 3.3 Fixes Range#size Rational Bug
- Rails 7.1 Default Dockerfile for Production
- Rails 7.1 perform_all_later for Jobs
- JS Generators, Iterators & Helpers Guide
- Rails 7.1 Async Query Support in ActiveRecord
- Integrate Google Calendar API into rails
- Rails 7.1 MessagePack Serializer Support
- Rails 7.1 generates_token_for Method
- Rails 7.1 ActiveRecord Normalization
- Limiting Maximum Index Name Length in Ruby
- Rails 7.1 Autoload Lib with Ignore Option
- A Memorable Saeloun Company Retreat
- Rails 7.1 SSL Enforcement by Default
- Why Project Estimation Matters for PMs
- Rails 7.1 ErrorReporter Handles Many Errors
- Rails Object#with for Attribute Management
- Zustand or Redux, which one is the best
- React state management - useReducer vs Redux
- useContext vs Redux: State Management
- Rails Object#in? Now Supports Open Ranges
- Introducing Line Range Filtering in Rails
- ECMAScript 2023 - Exploring New Features
- Rails 7.1 secret_key_base in Credentials
- Integrate Replicate in Rails Application
- An In-Depth Look at React Server Components!
- Sort Rails Models By Association Order
- Rails 7.1 assert_raises Matches Messages
- Building a chatbot in Next.js using Vercel
- Using picture_tag Helper in Rails 7.1
- Part 3 - Saeloun Website Info Architecture
- React Error Boundaries: Handle Errors Gracefully
- Part 2- Redesigning Saeloun's Website
- Rails 7.1 Rails.env.local? Method Explained
- Next.js App Router for Better Performance
- Rails 7.1 Postgres Enum Support Extended
- Using quarter method by rails 7.1
- React scrollIntoView with Fixed Header
- Customizing Rails Generators with Thor
- Rails 7.1 Audio Analyzer Sample Rate
- Integrate OpenAI API in Ruby applications
- Writing re-usable code with React Composition
- Deploy Jekyll blog to AWS Amplify
- Connecting AWS RDS with an EC2 instance
- Speed Up Rails with CloudFront CDN
- Duplicate Column Error Now Shows Table Name
- Fly.io Postgres Restore - PG Version Fix
- Restoring data using papertrail.
- CSS :where() and :is() Selector Grouping
- useState vs useReducer in React
- Rails 7.1 Improves Support for Custom Namespaces
- AWS EKS Part 5: Caddy Server SSL Redirect
- AWS EKS Part 4: Elastic Stack Setup
- AWS EKS Part 2: EBS CSI Driver Setup
- AWS EKS Part 1: Kubernetes Dashboard Setup
- AWS EKS Part 3: NGINX Ingress & Cert-Manager
- Replace lodash.get with Optional Chaining
- Rails 7.1 Introduces Default Health Check
- How to integrate Tailwind CSS in Electron?
- When to extract code to React custom hooks?
- Manually mount react component using UJS
- What's New in Vite 4: Key Features
- Rails 7.1 Handles Reconnects in Callbacks
- Rails Inflections Initializer Guide
- Rails Preserves TTL on Increment/Decrement
- CSS Cascading Layers for Style Control
- Rails 7.1 db:prepare Loads Schema
- Rails Opt Out of SameSite Cookie
- Rails 7 CSRF in Encrypted Cookies
- Rails 7.1 Enhanced dom_id Method
- Rails 7.1 Adds Rails.env.local? Method
- Rails Ignore Tables in Schema Dumps
2022 117
- Rails Optimizes AR Batch Iterations
- CSS accent-color for Form Inputs
- Release of Postgres15 : A Complete Guide
- Rails Routes Prefixed with cable
- Enumerable#many? Forwards Parameters
- Evaluating Media queries in a Range Context
- Rails Store Serializes as Regular Hash
- Learn about tree shaking in Webpack 5
- Rails 7.1 datetime_field include_seconds
- Ruby Data Class for Immutable Objects
- Rails Pending Migrations Show Path
- Rails 7.1 Job Generator --parent
- Rails 7 Fixes tsrange Timezone Bug
- Rails Adds SQLite :strict Option
- CSS overflow:clip and overflow-clip-margin
- Rails Validates Migration Options
- Rails assert_redirected_to Status Code
- Rails ErrorReporting source Attribute
- Rails Requires active_storage.service
- Rails Infinite Range in LengthValidators
- Rails Fixes Mutable Param Cache Hits
- Rails EML Download from Email Preview
- Meet the most awaited CSS container queries
- Rails Improves in_order_of Method
- How to enable Rails CSRF Protection?
- useCallback vs useMemo in React
- Expo React Native CI/CD with GitHub
- Rails error_highlight for Error Location
- Rails 7 SQLite Binary Column Defaults
- Rails 7 through_reflection Transactions
- Rails 7.1 select with Hash Values
- Rails Routes Search with Dynamic Params
- Understanding the CSS parent selector :has()
- Rails Parameters.to_h Accepts Block
- Rails 7 SCHEMA_FORMAT Environment Var
- Understanding CSS Feature Queries
- ActiveRecord Readonly Model Restrictions
- Rails 7 Screenshot Helper Options
- Rails Beginless Range in Validations
- Guide to Gemfile and Gemfile.lock
- Infinite Scroll with Turbo Only
- Ruby introduces Regexp.timeout
- React useEffect vs useLayoutEffect
- Rails 6 insert_all and upsert_all
- Rails Skips Contradictory Relation Queries
- Breaking changes in Cypress 10.0
- Caching Gems with Docker Multi-Stage build
- React custom infinite scroll with pagination
- Better Context and Communication
- Ecma International approves ECMAScript 2022
- Avoiding Overuse of Rails Engines
- Rails adds --js alias to --javascript
- Rails Multi-DB reading_request? Override
- Rails 7.1 Media Tags with ActiveStorage
- Rails Max Records in Async Destroy
- Copy to Clipboard in JavaScript
- Rails Pattern Matching for ActiveModel
- Rails Aliased Attributes in insert_all
- Kubernetes Rollout and Rollback
- Cypress 9.6.0 cy.origin for Multi-Domain
- React 18 useInsertionEffect Hook
- Rails 7 Arel adds support for FILTER clause
- How to write SQL queries in Rails?
- React 18 Adds Video onResize Event
- Saeloun's Company Retreat to Goa
- Rails 7 now lazy loads schema cache
- Ruby 3.1 Variable Width Allocation
- Rails connected_to Without Role
- React 18 Allows Rendering undefined
- How Does Ruby Manage Memory Allocation
- Step-by-step guide to GSAP Library
- Rails 7 Deferrable Foreign Keys
- Rails Prevents Unwarranted Shard Swapping
- React Code-Splitting for Performance
- Rails 7 with_lock Transaction Args
- Rails loads ActionCable via Zeitwerk
- ES2022 Private Field Brand Check
- Rails 7 Action Text form: Option
- Rails destroy_association_async_job Config
- CSS Overscroll and Scroll Snap
- Rails 7 Schema Dump Path Config
- Rails 7 allows permitting numeric params
- Saeloun Team Remote Workstation Tour
- Optimizing Rails App Performance
- Virtualization for Large Dropdowns
- Rails Adds Better Enum Assertions
- Ruby Fibers 101: A Complete Guide
- ES2022 Adds at() Method for Arrays
- Rails Fiber-Safe Connection Pools
- Redesigning Saeloun Website Part 1
- Rails 7 only_numeric Validator Option
- Google Analytics in React Apps
- Ruby 3.1 adds error highlighting gem
- Rails in_order_of Drops Unlisted Records
- Cypress 9.3.0 selectFile Command
- React State management - Part 2
- ActiveRecord find Reuses find_by Cache
- 3 Design Principles Apps Get Wrong
- Rails 7 Raises UnsafeRedirectError
- Cypress 9.2.0 CYPRESS_VERIFY_TIMEOUT
- Next.js with TypeScript and Tailwind
- Rails 7 Nested Attributes for delegated_type
- Rails 7 Auto inverse_of Detection
- Making React Apps Accessible: Best Tips
- Rails 7 Adds update_attribute! Method
- Rails 7 PostgreSQL Generated Columns
- Typography - Creating our Visual Identity
- React 18 Suspense SSR Architecture
- Rails 7 Plain Text for Nested Fields
- Rails 7 Timestamps in insert_all
- Cypress 9.2.0 Read-Only Config Error
- React 18 useDeferredValue Hook
- Rails 7 PostgreSQL Custom Enum Types
- Ruby 3.1 adds Class#subclasses
- What's New in Tailwind CSS v3?
- Master Rails Enums: A Complete Guide
- PostgreSQL data-types in Rails
2021 134
- React 18 useSyncExternalStore Hook
- Amazon Personalize Recommendation System
- Rails Adds authenticate_by Method
- Using jsbundling-rails Gem in Rails 7
- Second Week Experience at Saeloun
- Scalability Testing Using k6 Framework
- Navigation Guide for React Router 6
- Ruby 3.1 adds Class#descendants
- Creating Visual Identity with Colors
- Cypress 9.0.0 Duplicate Command Error
- Understanding React SSR Hydration
- Rails 7 GROUP BY and HAVING in Updates
- Condenser for Database Subsetting
- Creating Visual Identity - Moodboard
- My second week at Saeloun as an apprentice
- Rails 7 Action Text attachment_tag_name
- React 18 useId API for Unique IDs
- Rails 7 adds caching? and uncachable! helper
- My first week at Saeloun as an apprentice
- Rails 7 date_select :day_format Option
- First Week Experience at Saeloun
- Creating Brand Guidelines - Brand Sprint
- Cypress 8.7.0 slowTestThreshold Config
- What's New in React Router 6 Features
- Rails 7 I18n translate Defaults
- Rails 7 Safe Redirect Location Check
- Experiments in rebranding - The What and Why
- Cypress cy.pause() in Headed Mode
- ECMAScript Adds Top-level await Support
- Ruby 3.1 MatchData#match Methods
- Remove PII Data Using AWS DMS Service
- Cypress 8.6.0 Unselect Options
- ES2022 Introduces Static Class Features
- Rails 7 added --css app generator
- Rails 7 Import Maps Replace Webpacker
- Cypress 8.6.0 Screenshot Overwrite
- 8 Ways to Handle State in React Apps
- Rails 7 ActiveJob Priority Testing
- Rails 7 JavaScript Generator Options
- Rails 7: Instrument ActiveStorage analyzers
- Understanding CSS Custom Properties
- Rails 7 Database-Specific Setup Tasks
- Rails 7 from: Option in assert_no_changes
- Cypress version 8.5.0 adds select by index
- JavaScript ES2022 Class Fields: Public and Private
- Essential Skills For A Senior Rails Developer
- Rails Arel Guide: Build Complex SQL Queries in Ruby
- JavaScript Private Fields and Methods
- Rails 7 introduces ActiveModel::API
- Rails 7 supports NullsFirst for all databases
- ES2021 WeakRef and FinalizationRegistry
- Rails 7 PostgreSQL SSL in dbconsole
- Rails 7 Adds in_order_of Query Method
- React DevTools Error Boundary Trigger
- Rails 7 replaced byebug with ruby/debug
- Ruby 3.1 Adds Hash Value Omission
- Normalizing Redux State for Performance
- Rails 7 Adds weekday_select Helper
- Rails 7 Audio Metadata for Videos
- ES2021 Promise.any and AggregateError
- Rails 7 adds Marginalia to Query Logs
- Rails 7 ActiveStorage Expiring URLs
- React 18 startTransition API for Better UX
- Rails 7 Adds structurally_compatible?
- Rails 7 Adds attributes_for_database
- Rails 7 redirect_to Accepts Strings
- ES2021 replaceAll and Numeric Separators
- Rails 7 Optimizes remove_columns
- Rails 7 now consistently renders button_to
- Rails 7 Retry Jobs Indefinitely
- ActiveStorage Raises PreviewError
- Rails 7 Faster Logger with class_attribute
- ActiveRecord Column-Based Type Casting
- Ruby 3.1 Adds Integer.try_convert
- React 18 Suspense Improvements
- Rails 7 Adds Absolute Cache Expiry
- Rails 7 belongs_to Change Tracking
- React 18 adds automatic batching
- Rails 7 Nested Locales in Engines
- React 18 Introduces New Root API
- Rails 7 if_exists for Foreign Keys
- Rails 7 MySQL Security Improvements
- React 17 Event Delegation Changes
- Ruby 3.1 Pin Operator for Pattern Matching Explained
- Rails 7 Adds previously_persisted?
- React 17 introduces new JSX transform
- Rails 7 adds AudioAnalyzer to ActiveStorage
- Rails 7 Generators Validate Attributes
- Babel 7.14 Class Fields by Default
- Rails 7 Raw SQL in ActiveRecord upsert_all
- Rails now serves files via proxy
- Back to Office- The Remote Work edition
- ES2021 Logical Assignment Operators
- Rails 7 Context for Unpermitted Params
- Ruby 3.1 Adds Enumerable#compact
- React 17 Async useEffect Cleanup
- Rails 7 adds encryption to ActiveRecord
- Rails 7 has_one Callbacks Called Once
- Redux 4.1.0 Error Code Indexes
- Rails 7 Nested Secrets via Method Calls
- Rails 7 disable_joins for has_one :through
- Rails 7 Adds Enumerable#sole Method
- Rails 7 adds range serializer for ActiveJob
- Ruby 3.1 Enumerable#tally Accepts Hash
- Ruby 3.1 adds Array#intersect? method
- React 17 Uses focusin/focusout Events
- Ruby 3.1 Left-to-Right Assignment Order
- Rails 7 MemCacheStore Accepts nil Address
- Rails 7 Hash to HTML Attributes in ERB
- Rails 7 Adds disable_joins Option
- Rails 7 Constructors for has_one :through
- React 17 Adds KeyboardEvent.code Support
- Rails 7 Adds invert_where Method
- Rails 7 Adds Enumerable#in_order_of
- Rails 7 ActiveJob Enqueue Failure Handling
- Rails 7 Scoping Applies to All Queries
- React 17 Removes Event Pooling
- Rails 7 Adds Async Query Support
- Rails 6.1 Adds if_exists to remove_index
- Rails 7 Adds ActiveStorage Streaming
- Rails 7 Adds Rich Text Eager Loading
- Rails 7 Adds Enumerable max/min Methods
- Rails 7 Adds sole and find_sole_by Methods
- Rails 7 Adds #excluding to Relation
- React 17 stops event bubbling in scroll event
- Rails 6.1 Adds Lazy Image Loading Config
- Rails 7 introduces new syntax for enum
- Rails 7 Global benchmark Method
- Rails 7 Adds associated Query Method
- Rails 6.1 Adds in: Option for Numericality
- Rails 6.1.1 where with Table Aliases
- Rails form_with Defaults to Non-Remote
- Rails 6.1 Role Switching and Sharding
- Rails 6.1 Adds Check Constraints Support
2020 67
- Rails 6.1 Background Dependent Destruction
- Rails 6.1 Configurable Attribute Defaults
- Ruby 3.0 adds `Hash#except` and `ENV.except`
- Rails Deprecates db:structure Tasks
- Rails Allows Prepending Concerns
- Rails Adds Default Value to Rich Text Area
- Ruby Adds Leading Arguments with Forwarding
- Rails db:migrate:name Behavior Changes
- Ruby 3.0 Adds Symbol#name Method
- Rails Adds --minimal Flag for New Apps
- Ruby Adds Rightward Assignment Support
- Ruby Adds Find Pattern in Pattern Matching
- How to investigate your build size in Webpack
- Rails 6.1 Allows SQL Comments in OR Queries
- Ruby 3.0 Changes Proc Autosplatting Behavior
- Rails Configurable web_image_content_types
- ACID transactions in every day applications
- Rails 6.1 ActiveModel::Errors as Objects
- Rails support bulk insert/upsert on relation
- Rails Parameters each_pair/each_value
- Rails 6.1 Adds Signed IDs to Active Record
- Rails 6.1 Adds rescue_from to ActionCable
- Rails 6 perform_enqueued_jobs Without Block
- Rails 6.1 Adds if_not_exists for Indexes
- Rails Adds HTML Template Annotations
- Using Interactors in Rails Applications
- Ways for reducing Heroku slug size
- Rails Adds Descending Order to Batch Methods
- Rails - Added sub seconds to Time inspect
- Ruby Adds Endless Method Definition
- Rails Adds db:rollback:name for Multi-DB
- Rails 6.1 Adds Enumerable#pick
- Using Optimizer Hints in Rails
- Rails 6.1 Adds stream_or_reject_for
- Heredocs in Ruby and Rails Explained
- Rails Deprecates return/break in Transactions
- Rails Relation#pick Uses Loaded Results
- Rails Adds :from/:to to previously_changed?
- Rails Adds Schema Cache Path Configuration
- Rails Action Cable Adds Stream Unsubscribe
- Rails Adds round_mode to Number Helpers
- Ruby 2.7 Warns Setting $ Special Variables
- Eager Loading Active Storage to Avoid N+1
- Rails Adds Jitter to ActiveJob retry_on
- Ruby Hash#transform_keys Accepts Key Mapping
- Rails Adds Strict Loading to Prevent Lazy
- Rails adds config rake_eager_load
- Rails Adds Automatic Database Connection
- Ruby 2.7 removes taint checking mechanism
- Rails 6.1 perform_enqueued_jobs at Option
- Rails Adds API for Multiple Database
- Rails Disallowed Deprecations Support
- Rails has added a benchmark generator
- Rails if_exists/if_not_exists Migrations
- Rails 6 ActiveSupport Unicode Deprecations
- Rails 6 adds rails db:system:change command
- Rails 6.1 Adds Multiple Storage Services
- Rails Adds Relation#annotate for SQL Comments
- Ruby 2.7 Warns Singleton Class Yield Syntax
- Ruby Method Arguments and Arity Explained
- Rails 6.1 where.missing to Find Orphan Records
- Ruby 2.7 Allows Comments Between Fluent Dots
- Webpacker is the new default in Rails 6
- Ruby 2.7 Multiple Assignment with rescue
- Fixing N+1 Queries in Active Record
- Ruby 2.7 Deprecates Regexp#match with nil
- Ruby 2.7 Reverts Flip-Flop Operator
2019 66
- Ruby 2.7 Private Method Calls with self
- Ruby 2.7 Separates Time#inspect from
- Rails 6 Adds Ability to Block Database Writes
- Ruby 2.7 Method#inspect Shows Arguments
- Ruby 2.7 Adds Symbol#start_with? and
- Ruby 2.7 Adds Shorthand for Arguments
- Rails 6 adds ActiveSupport::ParameterFilter
- Ruby 2.7 Dir#glob Disallows NUL-separated
- Ruby 2.7 adds Enumerator#produce
- Ruby 2.7 Adds Comparable#clamp with Range
- Rails 6 Adds each_value to Parameters
- Who was hiring at RubyConf 2019?
- Handling Attachments in Action Text Rails 6
- Rails 6 adds Purpose Metadata to Cookies
- Rails 6 - Action Mailbox tryout
- Rails 6 - Active Storage changes
- Rails 6 Guards Against DNS Rebinding Attacks
- Rails 6 removes Action View helper image_alt
- Rails 6 adds after_save_commit
- Bind Parameters in Active Record for Security
- Ruby 2.7 Module#autoload? inherit Argument
- Understanding Ruby Lazy Enumerators
- Rails 6 adds tools for Action Cable testing.
- Rails 6 adds Active Record Relation#pick
- Ruby 2.7 adds UnboundMethod#bind_call method
- Rails 6 Adds delete_by and destroy_by Methods
- Ruby adds Array#intersection method
- Rails 6 Multi-Environment Credentials
- Distance Calculation in Ruby Using RGeo
- Ruby 2.7 Deprecates Hash to Keyword
- Ruby 2.7 adds Enumerator::Lazy#eager
- Rails 6.1 adds HTTP Feature Policy
- Rails 6 Action Text for WYSIWYG Support
- Rails 6 adds db:seed:replant task
- Ruby 2.7 Adds Integer#[] Range Support
- What's New in IRB with Ruby 2.7
- Ruby 2.7 adds Module#const_source_location
- How to Start Software Consulting
- Rails 6 Adds dig to Session Object
- Rails 6 Custom Serializers for ActiveJob
- Rails 6 Adds Hash#deep_transform_values
- Rails 6 Adds Support for Disabling Advisory
- Find Timezone from Coordinates Using Ruby
- Rails 6 Upgrades to rails notes Command
- Ruby 2.7 Warns Proc.new/proc Without Block
- Ruby 2.7 adds FrozenError#receiver
- Rails 6 Adds touch_all Method to ActiveRecord::Relation
- Scheduled Jobs in Multiple Timezones
- Ruby 2.7 Adds Time#ceil and Time#floor
- Rails 6 Adds Array#extract! Method
- Ruby 2.7 Adds Beginless Range Support
- Rails 6 - I18n key support for submit_tag key
- Rails 6 adds Relation#extract_associated
- Rails 6 Adds Server Handler Option
- Rails 6 Adds sms_to Link Helper Method
- Rails 6 delegate with private: true option
- Companies Hiring at RailsConf 2019
- Ruby 2.7 Introduces Enumerable#filter_map
- Rails 6 Deprecates update_attributes Methods
- Rails 6 adds db:prepare rake task
- Rails 6 Array including & excluding Methods
- Rails 6 adds Relation#reselect
- Ruby 2.7 adds Enumerable#tally
- Rails 6 Adds Timezone Support to Active Job
- Rails 6 Adds before? and after? to Date/Time
- Ruby 2.7 Shorthand Operator for Object#method