Save 36% for Black Friday! Save 36% on GoRails for Black Friday! Learn more →
How to build a complete, real-world application from scratch with Ruby on Rails step by step.
A lot of Ruby code is "magic". We'll explain the magic and see how it works using the powerful tools Ruby gives us.
Accept subscription and one-time payments with Stripe in your Rails apps
Expert advice on keeping Rails apps organized and fast.
Learn how to build fast, modern web apps with HTML over the wire.
Setup your computer with Ruby on Rails and deploy to a production server.
Cheap, easy hosting for Ruby and Rails apps.
Launch your product business way faster with our SaaS template.
A weekly podcast on web development and building products with Ruby, Rails, Javascript, and more.
A few of the Open Source projects we do at GoRails.
Build a Ruby on Rails app in 48 hours with us.
Help Junior developers get hired by sharing small projects to build their resume with paid work.
Find your next Ruby on Rails Job.
A CDN can distribute assets globally and allow more parallel downloads. This equates to performance benefits for users anywhere in the world
Sending SMS or Text Messages in Ruby on Rails is really easy using an API like Twilio
Receiving inbound SMS in Rails with Twilio is very similar to handling inbound emails with Action Mailbox
Reply to inbound SMS and phone calls using TwiML to create XML responses to Twilio conversations
Learn how to remove conditionals and make your code simpler and more reliable using Ruby and ActiveSupport's Array wrap methods
Learn how to add support for Accelerated Mobile Pages (AMP) from Google to Ruby on Rails in this tutorial
When things (users, jobs, etc) attempt to update the same record at the same time, we can often lose changes. Optimistic locking uses a lock version number to warn you about updating stale objects so you can handle that safely.
Race conditions can cause problems with data integrity. We can prevent these issues with Pessimistic Locking in ActiveRecord which uses database row-level locking.
With Rails 6.0, you can now define multiple primary and replica databases, define separate migrations for each primary database, and configure each model to read and write from different databases.
Learn how to write tests for validations on ActiveRecord objects in Ruby on Rails
Test Driven Development, or TDD, is a pretty simple process that allows you to write your code in conjunction with tests to ensure a high level of confidence and code coverage.
You can use Fixtures in Rails to create sample database records for your tests to run against. They're easy to setup and extremely quick.
Adding Devise test helpers allows you to quickly login a user for testing controllers in Rails
Learn how to write integration tests in Rails to test controllers and actions
System tests allow you to use a browser for testing your Rails app including Javascript
Learn how to set up GitHub Actions to run Continuous Integration (CI) with Ruby on Rails
WebMock is a fantastic way to stub out and mock your HTTP requests. It will actually throw an exception in your test suite when an HTTP request is made so that you know when you're hitting an external API that you haven't stubbed out correctly.
Testing integrations with external APIs in your Rails app can be hard. You don't know what requests are being made (or even the responses), so how can you properly mock them out? VCR to the rescue.
Learn how to test Active Job in your Ruby on Rails application
Rails provides several helper methods for testing times and dates in your applications. You can now freeze time and time travel like in the movies!