Ruby on Rails
Filed under Ruby, Ruby on Rails, Ruby Frameworks, Back-end Development, All Pages
Start here
Prerequisite: understand how the Internet works, how apps make and respond to requests, and other essential networks.
Rails powers some very cool sites online, like Shopify, AirBnB, Basecamp, Bloomberg, Couchsurfing, Github, Goodreads… and on and on. Ruby, especially on Rails, has a tremendous amount of power for building and deploying quickly, making it especially popular among startups.
Use Kaffeine if you are hosting your site on Heroku and don’t wait it to sleep at the wrong times!
Get clarity on your RESTful routes with Restular (but keep in mind that its actual syntax is meant more for Sinatra).
Here are the different areas you need to be competent in in order to work with Rails. It’s a great high-level but concise overview.
Tutorials and books: free and essential
- Learn Ruby on Rails: the Michael Hartl tutorial that everyone mentions when talking about learning Rails for the first time. Also, you can check out his take on Rails for beginner programmers.
- Rails guides from the official documentation.
- Rails Casts
- Rails guides/documentation
- Everyday Rails, a cool blog with articles from the people who brought you Everyday Rails Testing with RSpec.
- Rails Best-practices Blog
Other books and courses
- Everyday Rails Testing with RSpec
- Rails 4 in Action
- Agile Web Development With Rails
- LevelUP courses
- Objects on Rails, by Avdi Grimm, and be sure to check out his tech blog and podcasts.
Rails 5
- Rails 5 intro
- Rails 5 the tour, from DHH himself.
- Rails 5 Turbolinks
- Intro to nio4r
ActiveRecord
- Arel tutorial: Arel is what ActiveRecord is implemented in.
- Intro to ActiveRecord
- Another good intro to ActiveRecord
- Associations
- Validations and callbacks
- tutplus Active Record overview
- Avoiding n+1 queries, possibly the most common reason for slow Rails apps.
- Advanced SQL with Rails, a great small tutorial on writing SQL queries in Rails.
- Safer SQL: Using ActiveRecord Transactions
Testing Rails applications
- Stubbing with Rails
- Capybara: testing via mocks and stubs.
- Testing Rails: a cool series covering a lot of topics.
- RSpec for Rails
- Rspec tutorial: testing Rails 4 apps
Great Rails-specific gems to know
- bcrypt, for user authentication.
- pry-rails, a spectacular breakpoint/debugging tool (quite like
debugger
for the browser JavaScript console) - unirest, helping you make very clean http requests without the headache of Net::HTTP syntax, and as an alternative to HTTParty
Rails and the front-end
- 1-page Ajaxified Rails site
- WYSIWYG postings editor: add a text editor for your views that can send back rich text to your back-end.
- Making Rails asset pipeline faster
- Asset pipeline best practices
- How Ajax works in Rails
- Stopping Rails from including all your JavaScript files
- React on Rails
- Adding a Jekyll site to your Rails application
Managing dates and timezones
- “Working with timezones in Rails”
- Thoughtbot, “It’s about Time Zones”
- APIDock’s timezone methods support
- “Client-side timezone detection”
User authentication
- Tutorial for implementing Devise gem
- Using Devise gem to authenticate
- Authenticating with Twitter via the Devise gem
- Implementing password reset with Rails
Deployment, Heroku, and managing deployed apps
- Managing rack apps in production with puma-dev
- Heroku’s Intro to Ruby: support for deploying to a Heroku site.
Production-level apps
- Better Rails performance with background jobs
- Is your app ready for production?
- Improving large rails apps with service objects
- Phases of refactoring Rails apps
- Adding search functionality with Solr
Great articles and mini tutorials
- Building an rss reader
- Rebuilding Rails from scratch
- Integrating Google Calendar
- Rails security guide
- Essentials of cache expiration with Rails
- Rake 101
- Creating a Rails 5 API
- Containerizing Rails with Docker
- ActionCable intro
- Adding HTTPS to Rails hosted on Heroku
- Rails cheatsheet
- Rails debugging cheatsheet
- In-app messaging between users
- Add chat to a Rails app
- Building a Reddit-like commentating site
- Stripe with Rails: integrating client payments into your app.
- Full-text search in Rails
- Send email via Amazon Web Services
- Getting and responding to SMS in Rails with Twilio
Emails and mailers
- LaunchSchool’s ActionMailer tutorial: getting started with Rails mailers.
- Rails mailers
- SparkPost, a spectacular API for sending emails.