Yesterday I (belatedly) took my friend Nola Stowe‘s advice and picked up a book she tech-reviewed, The Rails Way by Obie Fernandez. It’s been a great read so far (about 85 pages in), and I just realized that routing is largely about type conversion.
Painless Upgrade to Rails 2.0
Code: ActiveResource, NearbyGamers, Rails, Rails 2.0, routing, Ruby, TDD, test, testing, tests, upgrade, web
I spent a dead-easy 2.5 hours last night updating NearbyGamers to Rails 2.0. My svn commit message read (with links added here for convenience):
Logging Internal Server Errors
Code: 500 errors, error handling, errors, internal server errors, logging, Rails, rescue
A good rule of thumb for websites is that for every hundred users who runs into a bug, one will let you know. This is when the user can even recognize there’s an error because they get a big “500: Internal Server Error”. You might get more reports if you have a very small userbase who know you, but don’t count on it. You have to log errors if you want to find out about them, so here’s some code to do that in Rails.
Discussion URLs: Opaque, Usable, and Readable
Code: ActiveResource, human-readable, named routes, nested routes, Rails, resources, RESTful, routes, routing, Ruby, URLs
I just wrote about Human-Readable ActiveResource URLs, and now I want to examine one example of them more in-depth. Discussion forum URLs have several conflicting goals:
Human-Readable ActiveResource URLs
Code: ActiveResource, design, human-readable, named routes, nested routes, Rails, Rails 1.1, Rails 1.2, RESTful, routes, URLs
I’ve got URLs on the brain this week. I started NearbyGamers using Rails 1.1 with just gamers and tags. I upgraded to Rails 1.2 (and liked it)
, and added discussions after I updated to Rails 1.2. I was able to use ActiveResource for Discussions with Posts as a nested resource. I’m really happy with this code, as it’s very tidy.
Rails: Semicolons Out, Slashes In
Code: map, mapping, Rails, resources, routes, routing, semicolon, slash, slashes, URLs
As of r6485, Edge Rails resource routes use / as the URL separator for actions instead of ;. This will be in Rails 2.0 (and I like / more), so I wanted to get prepared for the change by updating my URLs now. I didn’t want to move to Edge Rails (too exciting for me), so I grabbed the change, dropped it into a source file, and loaded it into my app (thank you, open classes).
I’m updating NearbyGamers to Rails 1.2.1. Nothing broke except my use of assert_tag in my tests; it’s been long-regarded as squicky and has been replaced with assert_select. As I’m tidying up some deprecated code, it occurs to me that this makes for an interesting example of how I feel Rails is changing.
I’d like to invite you all to check out my newest project, NearbyGamers, a service for tabletop gamers to find other players. (As I mentioned earlier, it’s a Rails site.) It’s for people who play RPGs, CCGs, TCGs, wargames, board games — basically any game where you need to have a live human on the other side of a table if you want to play.