Ruby On Rails
- How DHH Organizes His Rails Controllers
- Gemfile of dreams from Evil Martians
- The Definitive Guide to Rack for Rails Developers
- Gourmet Service Objects
- ActiveRecord Mistakes That Slow Down Rails Apps: Count, Where and Present
- A Single file Rails Application
- Rails Console Shortcuts, Tips, and Tricks
- 27 Ruby Gems I use in almost every SaaS project
- Authorization with Pundit
- Change data in migrations like a boss
- Getting Started with JBuilder
- How to Make a Rails 5 App API-Only
- How Does ActiveJob Work?
- Built-in Redis cache store
- Speed up Capybara Tests with Devise
- End-to-End Testing with RSpec Integration Tests and Capybara
- Rspec: Helper spec
- Reverb’s story of moving to Webpack on the frontend
- 3 ways to integrate Ruby on Rails + React + Flux
- React on Rails, 2000+ Stars
- Ruby on Rails development setup for Mac OSX
- The 10 Most Common Mistakes That Rails Developers Make
- Object-oriented controversies: Tell Don’t Ask vs the Web
- My issues with Let (RSpec)
- Let’s Not (RSpec)
- Rails Database Best Practices
- Replacing the Rails Asset Pipeline with Webpack and Yarn
- Includes vs Joins in Rails: When and where?
- Where Does Your Code Go?
- “Reduce” the rails way - Enumerable#each_with_object
- Rails 3 Remote Links and Forms: A Definitive Guide
- Responding with JSON in Rails
- ActiveModel::Serializers vs Jbuilder (Kirill Platonov)
- From REST to GraphQL
- Ruby on Rails 5.1.0 Changes and New Features (Video)
- ODBC and writing your own ActiveRecord adapter
- Rebuilding the Shopify Admin: Improving Developer Productivity by Deleting 28,000 lines of JavaScript
- Scaling Ruby Apps to 1000 Requests per Minute - A Beginner’s Guide
- How the F does Sprockets Load an Asset?
- Rubyconf 2016: The Performance Update
- What are the Benefits of Ruby on Rails? After Two Decades of Programming, I Use Rails
- Configuring New Rails Projects With .railsrc and Templates
- Customizing the Rails App Generator
- Embracing Change: Rails 5.1 Adopts Yarn, Webpack, and the JS Ecosystem
- Learning Ruby on Rails in 2016 from the best resources
- 100ms to Glass with Rails and Turbolinks
- Generate polymorphic url
- Programming with a love of the implicit
- Custom flash helper in rails4
- Delete in Rails Without jQuery and UJS
- Action Mailer Previews in Ruby on Rails 4.1
- Sending Emails in Rails Applications
- Authentication in Rails 3.1+
- default_scope is evil
- Rails 5 improves redirect_to :back with new redirect_back method
- Using Rails test fixtures with CarrierWave
- How to Override Default Primary Key Id in Rails
- A many-to-many association with ‘has_many :through’ and ‘has_and_belongs_to_many’
- Custom Named Belongs_to Associations in Rails with foreign key constraints
- Rails 5 makes belongs_to association required by default
- Test Objects for Blankness With This One Little Trick!
- Rails: Don’t “pluck” Unnecessarily
- The Marriage of Figaro… and Rails
- Three Easy Steps to Using Counter Caches in Rails
- Proper Counter Cache Migrations in Rails
- Rails Database Best Practices
- Railsconf 2017: The Performance Update
- How to write complex migrations in Rails
- Rails: Talking to the database without instantiating ActiveRecord objects
- Have Some (Referential) Integrity with Foreign Keys
- UUID filenames for CarrierWave
- Using MJML in Rails
- How to send responsive Emails using MJML in Rails?
- Testing async emails, the Rails 4.2+ way
- Mystery Guest
- Use Factory Girl’s build_stubbed for a Faster Test Suite
- How We Test Rails Applications
- Structure Your SASS Files With @import
- provide vs content_for
- Abusing Rails I18N to Set Page Titles
- Store Page Titles in I18n
- Responsive Meta Tag
- The Problem with iOS Safari and shrink-to-fit
- INTERVIEW: Aaron Patterson, Rack, Github and BBQ
- Debugging Rails views in production
- Directory for shared partials in Rails
- The Last Rails I18n Guide You’ll Ever Need
- Rails I18n: 3 Quick Tips and 1 Crazy Abuse
- try() again in Rails
- How to use link_to in Rails
- Clearance vs. Devise
- Running feature specs with Capybara and Chrome headless
- Is Ruby Too Slow For Web-Scale? (Nate Berkopec)
- Rails on Docker: Getting Started with Docker and Ruby on Rails
- Configure capybara-webkit to Run Acceptance Specs With Javascript/AJAX
- Debugging Capybara: screenshot of error page on CircleCI
- Rails Web-Scale is Expensive
- Phoenix is better but Rails is more popular (2017)
- Spy vs Double vs Instance Double
- Realtime with React and Rails (react_on_rails)
- Is WEBrick Webscale?
- Automatically Wait for AJAX with Capybara
- Things To Be Aware Of When Change Capybara Default_wait_time
- Coder Frozen in 2009 Awakens to Find Frontend Development not Awful
- Everything You Should Know About the Rails Asset Pipeline
- Module#prepend, Rails 5, and the End of
Alias_method_chain
- SafeBuffers and Rails 3.0
- IO in Ruby
- Ruby Proxy Pattern and Dynamic Delegation (Rails 2.3 and 3)
- How to make AJAX calls in Rails 5.1 with or without jQuery
- Active Record’s queries tricks
- Using the Draper Gem, Round One
- ActionView/Helpers/TextHelper#concat method
- #includes #preload #eager_load (Rails 3 & 4 & 5)
- Preload, Eagerload, Includes and Joins
- using #to_partial_path
- Put chubby models on a diet with concerns
- Rails 5 accepts 1 or true for acceptance validation
- Modern Front-end in Rails
- The Perils of Uniqueness Validations
- puma-dev on OSX follow up (tips and tricks)
- proxy_association.owner
- ActiveRecord::Associations::ClassMethods (Rails 5.1)
- Rendering Collections in Rails
- Creating Easy, Readable Attributes With ActiveRecord Enums
- Enums with Rails & ActiveRecord: an improved way
- Get your SVGs out of your HTML (Schneems)
- 5.2 Active Storage, Redis Cache Store, HTTP/2 Early Hints, CSP, Credentials
- Acceptance Tests with Subdomains
- Instrumenting Rails with Prometheus
- Rails 5.2: Active Storage and beyond
- Rails 5.1’s form_with vs. form_tag vs. form_for
- My time with Rails is up
- Rails / Active Storage Readme
- How to simplify Active Record scopes that reference other models
- Provide friendlier access to request variants (also ArrayInquirer)
- Rails 5 attributes API, value objects and JSONB
- Ruby string literals VS Value objects. Overengineering?
- How to use Query Objects to refactor Rails SQL-queries
- Rails 5 adds “helpers” method in controllers
- Implement helpers proxy in controller instance level
- ActiveRecord’s queries tricks
- Advanced Eager Loading in Rails
- Query Object in Ruby on Rails
- Provide sharp knives
- Capybara feature specs with Selenium and headless Chrome — CircleCI 2.0
- Using
yield_self
for composable ActiveRecord relations - How to persist hashes in Rails applications with PostgreSQL
- Using Arel to Compose SQL Queries
- How to use Algolia without coupling to ActiveRecord::Base
- Beware of curious behaviour of ‘downcase’ with umlauts
- Rails 4 and PostgreSQL Arrays
- How to start using Arrays in Rails with PostgreSQL
- Optimize Rails Performance with Redis Caching and Rack Middleware
- Top 10 errors from 1000+ Ruby on Rails projects (Rollbar)
- Performing custom validations in Rails — an example
- Rails 5 allows passing record being validated to error message generator
- app.reloader example
- Actionable Tips to Improve Web Performance with Rails
- Enter Enumerable#index_with
- Restricting access to a Rails engine
- graphql-ruby Tutorial
- Embracing REST with mind, body and soul. respond_with (Jose Valim 2009)
- JavaScript-sprinkled Rails Applications
- Russian doll caching in Rails
- E-Commerce at Scale: Inside Shopify’s Tech Stack
- DSL for configuring Content-Security-Policy header
- Understanding race_condition_ttl in Rails
- Hacking content_for to create a simple display helper
- Beyond the default Rails environments
- Working with dates on Ruby on Rails
- Goodbye Secrets. Welcome Credentials! Rails 5.2
- Simplifying internal validations using Dry-Validation
- Some notes on what’s going on in ActiveStorage
- Upgrading GitHub from Rails 3.2 to 5.2
- State machines in Rails 5
- Nine tips for Rails migration mastery
- From Service Objects To Interactors
- Validators for Interactors
- Indexes on Rails: How to Make the Most of Your Postgres Database
- Use containers while staying true to your RoR roots
- Using ES2015 with Asset Pipeline on Ruby on Rails
- Using sets for many-to-many relationships
- Writing Less Error-Prone Code
- How to create perfect enum in 5 steps
- Tips for Writing Fast Rails: Part 1
- Tips for Writing Fast Rails: Part 2
- Rails 5 allows configuring queue name for mailers
- Action Dependent Validations and Why :on => :update is Bad
- Rails and Conditional Validations in Models
- Domain Driven Rails Architecture
- Rails 5.2 ActiveRecord::Dirty API Changes
- Rails Console Magic Tricks
- How to See Your Feature Specs Run in the Browser
- Deploying Rails to Kubernets
- Rails Cheat Sheet: Create Models, Tables and Migrations
- Rails AR ‘serialize’ class method
- Support for left outer join in Rails 5
- Factory Girl Callbacks (Thoughtbot)
- Nosy models (Thoughtbot)
- Tidy Views and Beyond with Decorators (Thoughtbot)
- Not yet (Thoughtbot)
- Against convention (Thoughtbot)
- Rails Anti-Pattern: Fat Decorator
- Local SSL for Rails 5 development and tests
- Rails Database Best Practices
- Advanced SQL in Rails - Part 1
- Advanced SQL in Rails - Part 2
- update_attribute, update_attributes and update_column
- Different Ways to Set Attributes in ActiveRecord
- Tracking Attribute Changes in Rails 5
- When duplication is far cheaper than the wrong abstraction
- 4 things i learned toying around with nested resources in Rails
- Actually you can do simpler using ransacker predicate not_null
- Be careful when using ‘distinct’ in a scope with Draper
- Rails migrations with no downtime
- FactoryBot transient attributes
- Get Rid of That Code Smell – Attributes
- Get Rid of That Code Smell – Duplication
- Get Rid of That Code Smell – Primitive Obsession
- Custom spec types with RSpec
- UNION with Active Record
- ActiveRecord UNION hack
- About the composed_of removal (Rafael França 2012)
- Active Record loves blocks
- Value Objects in Ruby on Rails
- Single Responsibility Principle on Rails Explained
- Easily namespace your Rails models
- STI vs Polymorphic
- Stubs, Mocks and Spies in RSpec
- Rails 6 adds negative scopes on enum
- Rails 6.1 supports ORDER BY clause for batch processing methods
- Rack middlewares that have saved me literally hours of my life
- Embracing Modern JavaScript (with Ruby on Rails) 2017
- Why don’t we validate controller parameters?
- Don’t use instance variables in partials
- Ignore PHP bots with Rack::Attack
- How to mitigate DDoS using Rack::Attack
- Replace Timecop With Rails’ Time Helpers in RSpec
- Careful with present? when using ActiveRecord scopes
- A job should know whether to run itself
- Stop robots and crawlers causing errors in your Rails application
- Use simplecov in your Rails test suite
- Validate and Fix Ruby on Rails ActiveRecord PostgreSQL Data Integrity
- Don’t call controller from background job
- Using Polymorphism to Make a Better Activity Feed in Rails
- When to avoid the DRY principle
- Rails 6 deprecates update_attributes and update_attributes!
- Basic Search Using Ransack
- Best Ruby On Rails refactoring talks
- Refactoring Ruby Iteration Patterns to the Database
- ‘map’ method with AR has_many
- How to stub a ‘decent_exposure’ helper method in a view spec with RSpec?
- How to Test a Concern in Rails
- Handling Associations on Null Objects
- Use Factory Girl’s build_stubbed for a Faster Test Suite
- Capybara inconsistent click behavior and flickering tests
- Using strftime in a Rails view is probably a mistake
- Rails - assume_migrated_upto_version
- The Curious Case of the Table-Locking UPDATE Query
- Building a Continuous Integration & Deployment Pipeline Using Docker (CI/CD)
- Why I prefer Minitest (Nate Berkopec)
- Rails vs Django vs Laravel
- Rails Date Range String Conversions
- My experience with Minitest and RSpec (Aaron Patterson)
- YAGNI methods are killing me (Aaron Patterson)
- Is caching a necessary step when scaling a web application? (Nate Berkopec)
- I’m tired of the ‘Rails should fundamentally change’ crowd (Piotr Sarnacki)
- How to Perform Concurrent HTTP Requests in Ruby and Rails
- What service objects are not
- Ruby on Rails Mistakes that could Kill Your Production Servers
- What makes an application thread-safe? Can I switch to Puma?
- Running Rails jobs in background threads
- Tips for Using FactoryGirl Without an ORM (Thoughtbot)
- It’s About Time (Zones)
- Active Model Attribute Methods
- Scaling is mostly about just one metric: queue time
- A Deep Dive into CSRF Protection in Rails
- Include/Extend - Better Ruby Idioms (Yehuda Katz)
- Rails routes - FSM with NFA simulation
- Default response with 204 No Content in Rails 5
- Using Service Objects in Ruby on Rails
- A Deep Dive into Routing and Controller Dispatch in Rails
- How does the Rails router Journey work?
- Mastering Low Level Caching in Rails
- Zero-Downtime migrations in Rails
- Spy vs Double vs Instance Double
- Rspec: let vs let! vs @variable
- Heroku is being left in the dust when it comes to raw power
- The best way to handle exceptions from Net::HTTP
- To Concern Or Not To Concern
- Performance impact of using View partials
- Paying tribute to the web with View Source
- The Ruby on Rails database connection pool
- Rails connections, pools and handlers
- Dealing with multiple database in Rails
- Ruby’s magical Enumerable module
- Refactoring Fat Rails models with Concerns
- How to break a high cohesive model into different classes
- Don’t create objects that end with -er
- Beware of ‘service objects’ in Rails
- Rails has added strict loading mode to prevent lazy loading
- Active Record, Sidekiq, pools and threads
- Ruby Refinements Have One Good Use Case
- The different kinds of Rails tests
- Extracting a tidy PORO from a messy Active Record model
- Rails 6.1 adds query method missing to find orphan records
- How to Introduce Composite Primary Keys in Rails
- Stop worrying about PostgreSQL locks in your Rails migrations
- Rails 6.1 ’nulls_first’ and ’nulls_last’ methods for PostgreSQL
- Rails 6.1 ‘sole’ and ‘find_sole_by’
- How did DHH discover Ruby, the language?
- Rails App in a Single File
- add_index :concurrently with RoR
- How ActiveRecord Uses Caching
- Logidze 1.0: Postgres, Rails, and time travel
- Rails 6 adds guard against DNS Rebinding attacks
- 4 Non-standard Ways to Fix N+1 SQL Queries in Rails
- One Weird Trick That Will Speed Up Your Bundle Install
- Behind The Scenes: Rails UJS
- How I organize my Rails apps
- When used intelligently, Rails concerns are great
- ActiveJob good practices
- How Rails Sessions Work
- Import Maps Under the Hood in Rails 7
- Turbo Frames Vs. Turbo Streams
- Estimate database connections pool size for Rails application
- On chosing the ideal architecture of the web application
- Between monoliths and microservices
- Replace Timecop With Rails’ Time Helpers in RSpec
- How GoodJob’s Cron does distributed locks
- require vs require_dependency
- Rails on Docker from fly.io
- How to set up Rails, Redis, and Postgres with docker-compose in 2023
- Avo as a starter kit
- How to bundle assets in a Rails engine
- What’s New in Rails 7.1
- Introducing MRSK by DHH
- Rendering Views Without Rails using ERB
- Deconstructing the Monolith at Shopify
- Packwerk - enforce boundaries and modularize Rails applications
- Useful Active Support features
- RailsCasts Retrospective Part 1: The Fuel
- 8 out of the 10 most valued companies from YC use RoR
- Running a Rails app in production mode locally
- Why Ruby on Rails?
- Deploying Rails application with Dokku
- Setting Up Development Environment for Rails
- Write your app as a modular monolith and deploy it as a set of microservices
- ActiveRecord::QueryMethods#in_order_of
- Rails 7.1 adds adapter option to disallow foreign keys
- My journey from ‘JS frustration’ to ‘RoR joy’
- Using aliased attributes with insert_all/upsert_all -MRSK vs Fly.io
- You Don’t Need Rails to Start Using Hotwire
- A PR to Rails Co-authored-by: ChatGPT
- Turbo Streams: How They Work and Differ From Turbo Frames
- The Case Against Monkey Patching by Eileen Uchitelle
- Even Amazon can’t make sense of serverless or microservices
- How to recover from microservices
- Introduction to Rails Engines
- Rails I18n Manager: Complete Translation Editor and Workflow
- Inline Routes in Rails -> lambda Rack endpoints
- Don’t Interpolate Strings into Active Record Methods
- create_or_find_by
- transaction(requires_new: true)
- ActiveSupport::CurrentAttributes
- ActiveSupport::StringInquirer
- Rails.env.local? in Rails 7.1
- ActiveSupport Cache Increment and Decrement
- Why you shouldn’t use ENV variables for secret data
- Writing tests that fail