I’m just getting started with Rails 2. Plus, it’s been a while since I
played with Rails at all. So to explore, I whipped out an old Rails
tutorial (from an O’Reilly book) and started going through it, to
refresh my memory. This is just a simple “Hello world” experiment.
I created my rails app, cd’d into it, started the server, and created
a simple controller:
script/generate controller greeting
So I tried to talk my controller in the browser:
http://localhost:3000/greeting
And I got a routing error, “no route matches … with method get”.
I found this a bit hard to understand, because routes.db has the
default routes, so my controller name should work from a GET request.
But, nothing daunted, I added some overkill routing at the top of
routes.db:
map.resources :greeting
Now http://localhost:3000/greeting was routed properly; of course
there was no index action but now at least I got the expected error
message telling me so, I wrote an index method, and all was well;
hello, world.
But here’s the weird part. I then deleted the map.resources line
from routes.db, and my app nevertheless continued working. I can rake
routes and sure enough only the default routes are in force. So it
looks like maybe this a bug in Rails, where it takes some manual
jiggering to get the default routes operating properly? Anyway I
figure this must be well known, so maybe someone could just explain it
to me? No big deal, but I like to understand what’s going on, if
possible - thx - m.