small medium large xlarge

Crafting Rails 4 Applications: Expert Practices for Everyday Rails Development


Cover image for Crafting Rails 4 Applications

Crafting Rails 4 Applications

Expert Practices for Everyday Rails Development


Get ready to see Rails as you’ve never seen it before. Learn how to extend the framework, change its behavior, and replace whole components to bend it to your will. Eight different test-driven tutorials will help you understand Rails’ inner workings and prepare you to tackle complicated projects with solutions that are well-tested, modular, and easy to maintain.

This second edition of the bestselling Crafting Rails Applications has been updated to Rails 4 and discusses new topics such as streaming, mountable engines, and thread safety.

Customer Reviews

Superb—the most advanced Rails book on the market.

- Xavier Noria

Ruby on Rails consultant

In Crafting Rails 4 Applications, José Valim showed me how to make Ruby on
Rails dance. I write better code and waste less time fighting the framework because
of the tricks he taught me. If you make a living with Ruby on Rails (or would like
to), do yourself a favor and read this book.

- Avdi Grimm

Head chef, Ruby Tapas

This is easily the best continuing-education book for Rails that I have ever read.
You learn how things work internally and how you can use that to your advantage
when building Rails applications.

- James Edward Gray

Developer, Gray Software Productions, Inc.

Crafting Rails 4 Applications is the best introduction to Rails internals out there.
After reading it I quickly became a Rails contributor.

- Guillermo Iguaran

Lead developer

See All Reviews

Choose Your Format(s)

  • $24.00 In Stock
  • Ebooks are DRM free.

  • Ebook delivery options.

What You Need

This book requires previous experience with Ruby on Rails.

Contents & Extracts


  • Creating Our Own Renderer excerpt
    • Creating Your First Rails Plugin
    • Writing the Renderer
    • Understanding The Rails Rendering Stack
    • Taking It to the Next Level
    • Wrapping Up
  • Building Models with Active Model
    • Creating Our Model
    • Integration Tests with Capybara
    • Taking It to the Next Level
    • Wrapping Up
  • Retrieving View Templates from Custom Stores
    • Revisiting the Rendering Stack
    • Setting Up a SqlResolver
    • Configuring Our Resolver for Production
    • Serving Templates with Metal
    • Wrapping Up
  • Sending Multipart Emails Using Template Handlers excerpt
    • Playing with the Template Handler API
    • Building a Template Handler with Markdown + ERB
    • Customizing Rails Generators
    • Extending Rails with Railties
    • Wrapping Up
  • Streaming Server Events to Clients Asynchronously excerpt
    • Extending Rails with Engines
    • Live Streaming
    • Filesystem Notifications with Threads
    • Code-Loading Techniques
    • Wrapping up
  • Writing DRY Controllers with Responders
    • Understanding Responders
    • Exploring ActionController::Responder
    • The Flash Responder
    • HTTP Cache Responder
    • More Ways to Customize Generators
    • Wrapping Up
  • Managing Application Events with Mountable Engines
    • Mountable and Isolated Engines
    • Storing Notifications in the Database
    • Rails and Rack
    • Middleware Stacks
    • Streaming with Rack
    • Wrapping Up
  • Translating Applications Using Key-Value Back Ends
    • Revisiting Rails::Application
    • I18n Back Ends and Extensions
    • Rails and Sinatra
    • Taking It to the Next Level with Devise and Capybara
    • Wrapping Up


José Valim is the lead developer and co-founder of Plataformatec. He started working with Ruby and Rails in late 2006 and was invited to be part of the Rails Core Team in 2010. He’s also author and maintainer of various other well-known open source projects that led him to receive a Ruby Hero award in recognition for his contributions to the community. Lately, he’s been flying around the globe promoting the concurrency-focused programming language called Elixir.