Ruby on Rails

A collection of helpful resources for creating and deploying RoR applications, with a smattering of other related topics thrown in. It’s woefully incomplete and ill-styled, but if I don’t start writing it down, I’m going to forget it all.

Introductions

Book: Agile Web Development with Rails, 2nd Ed.

A first-rate overview on Ruby on Rails installation, development, and deployment.

Book: Programming Ruby, 2nd Ed. (”The Pickaxe Book”)

The standard text for learning the Ruby language, as distinct from the Rails framework.

Developing with Rails

has_many :through

Readable, informative blog by knowledgeable Ruby on Rails developer, with thoughtful posts (e.g.) on Rails minutia.

Programming is Hard: Ruby

The “Ruby” section of a site with lots of platform-specific tips.

Top Ten Tutorials

Another general-purpose programming site with plenty of Ruby-specific info.

Installing Rails

Depending on the platform, on whether or not you need the latest version, and whether you’re content with installing a pre-built binary or insist on building it yourself from the source, the ease of installation varies quite a bit. Here are a few things that can help.

Ruby on Rails

The official site. Pointers to downloads, documentation, sites using Ruby, and informative screencasts.

Building Ruby, Rails, Subversion, Mongrel, and MySQL on Mac OS X

A good step-by-step guide to building the things from scratch on OS/X.

a better way of building ruby, rails, lighttpd, mysql, and postgres on OS X tiger

How to install to a Mac OS/X system using MacPorts. [I've never tried this personally]

Deploying Rails

Rails Web Host: RimuHosting.com

If it doesn’t come with root access, they don’t sell it. Four years experience supporting J2EE applications, six months experience supporting Ruby on Rails. They’re my host, and they’ve been incredibly helpful, so far.

Software: Apache - Web Server

The number one HTTP server on the Internet. A great front end to Ruby-specific back ends.

Software: Subversion - Source Code Control

An open-source version control system, aiming to be a compelling replacement for CVS.

Book: Pragmatic Version Control Using Subversion, 2nd Ed.

This book is certainly a good introduction, though I haven’t read more than the first few chapters, yet. (I’ve been introduced, and it was good.)

Ruby script for creating new rails project and initial SVN import

Some of the files and subdirectories created by rails generate should not be check into source code control, either because they only hold emphemeral objects, or for security reasons. Here’s a ruby script that creates a new blank rails app, checks it into subversion, and then tells subversion to delete and no longer attempt to update those inappropriate files and directories. There is a small bug in this script, as written here - the new application’s “tmp” subtree is not successfully marked with the svn:ignore property.

Software: Mongrel - Fast Web Server, Travels in Packs

One way of scaling up your Ruby application. Run with an Apache web server front end, delegating to a pack of mongrels that serve out the Ruby goodness.

Scaling Rails with Apache 2.2, mod_proxy_balancer and Mongrel

Jonathan Weiss describes his company’s move from Lighttpd+mod_fastcgi to Apache 2.2+mod_proxy_balancer+Mongrel Cluster.

Multiple Ruby on Rails apps with Mongrel and Apache

Has instructions for serving up multiple Rails apps from literally the same domain, e.g., domain.com/app1, domain.com/app2, rather than app1.domain.com, app2.domain.com.

Software: Capistrano - Automating Application Deployment

An open-source, multi-machine, coordinated application publishing system. One-click deployment of the latest version of your application to all of the database and web servers that run it. Easy multi-level rollback if you got a little too enthusiastic. Comes with built-in support for Subversion and CVS.

Managing database.yml with Capistrano

An example of a Capistrano task to link in the actual database.yml file at the last minute, so that this file, and the access secrets it contains, needn’t be checked in to source code control.

Time For A Grown-Up Server: Rails, Mongrel, Apache, Capistrano and You

Good step-by-step guide to Rails deployment.

Unsolved Problems

Need to review Apache “Proxy” statements for Rails