I am building an RESTful search application in Rails. Unfortunately I
can't take advantage of map.resources routing because the application
has no models (it communicates with a SOAP service). So I am building
a REST architecture from scratch.
I have 5 custom routes to emulate RESTful nesting of resources.
However, I have to duplicate every entry to be able to catch whether
or not the resource is requested with a format. So I have to have 10
route entries...
Thanks for the reply. I used map.resources and it worked fine until I
began nesting my resources. The syntax for nesting map.resources does
not seem to work without models. The issue I have with map.resources
is it creates several routes which aren't applicable to my
application. For instance, I have a few controllers which should only
be accessible with a GET since they are results from a web service.
The POST, PUT, DELETE + new and edit are not needed.
Thanks for the reply. I used map.resources and it worked fine until I
began nesting my resources. The syntax for nesting map.resources does
not seem to work without models. The issue I have with map.resources
is it creates several routes which aren't applicable to my
application. For instance, I have a few controllers which should only
be accessible with a GET since they are results from a web service.
The POST, PUT, DELETE + new and edit are not needed.
I'm curious why this would be a problem? If you don't define the corresponding methods in your controller you should be fine? Or am I missing something?
Thanks for the reply. I used map.resources and it worked fine until I
began nesting my resources. The syntax for nesting map.resources does
not seem to work without models. The issue I have with map.resources
I'm not sure how it wouldn't work without models - as I said,
map.resources has nothing to do with models really.
I'll hazard a guess tho: is it something like you want /foo
(foo_controller) and /foo/bar (bar_controller)? If that's what you're
talking about, then /foo is a map.resource (note the singular).
So unless what I've said above (or what *you* said below) explains why
it doesn't work for you, maybe you could expand on this a bit?
is it creates several routes which aren't applicable to my
application. For instance, I have a few controllers which should only
be accessible with a GET since they are results from a web service.
The POST, PUT, DELETE + new and edit are not needed.
Yeah, I can understand why you wouldn't want them. I guess it's a
tradeoff between the convenience of map.resources with a controller
that only has index/show methods vs the extra (and un-used) routes and
url helpers.
If the extra routes and helpers really offend you then you could whip
up a little helper or two that generates routes the way you want -
after all, that's what map.resources is (see resources.rb in the rails
source).
I am not sure why it didn't work when I nested it. Perhaps it has to
do with mapping associations in the resources.rb. It was awhile ago,
so there might have been singular issue. At this point I think I've
decided I want to implement my own routes. I might refer to
resources.rb to create my own helper.
Rails map.resources is a great template for how I'd want to do RESTful
routes 95% of the time. However, there are times when the conventions
breakdown for a particular resource-oriented service.