Hi Folks,

I'm trying to set up a RESTful route in my rails app and have hit a
snag. My application allows various different types of querying centered
around a search phrase, and I decided it'd be nice to that in my RESTful
API by exposing resources like:

http://www.myapp.com/api/keyword_research/SOME_SEARCH_PHRASE
for basic information about the phrase, and then

http://www.myapp.com/api/keyword_research/SOME_SEARCH_PHRASE/popularity
for a specific query on that phrase (it's popularity in this case).

Essentially I'm trying to represent the search space as a resource
space, with one resource for each possible phrase.

I set up the following in my routes.rb, and it ALMOST works:

map.resources(
      :keyword_research,
      :controller => 'api/v3/keyword_research' ,
      :member => {:index => :get, :popularity => :get }
    )

I can then use something like the following to generate resource URLs:
keyword_research_url( 'some search phrase' )
and
popularity_keyword_research_url( 'some search phrase' )

The only problem is when the search phrase contains a dot. That leads to
urls like:

http://www.myapp.com/api/keyword_research/PHRASE.WITH.DOTS
and
http://www.myapp.com/api/keyword_research/PHRASE.WITH.DOTS/popularity

which confuses the routing system to no end. This results in various
errors such as template missing, no route found, etc etc. Essentially I
think the routing system is interpretting the dotted id as specifying a
representation type, or something similar.

I thought a nice solution would be to encode the search_phrase portion
of these resource urls when I generate them, leading to urls like:
http://www.myapp.com/api/keyword_research/PHRASE%2eWITH%2eDOTS
and
http://www.myapp.com/api/keyword_research/PHRASE%2eWITH%2eDOTS/popularity

I've tested urls encoded like this and they appear to play nicely with
the routing I have, and are within the specs AFAIK. I'd be happy with
this, but the problem is that I don't know how to generate urls like
this using the url helper methods.

Anyone have any ideas? I'd be open to either a clean way to support
un-encoded dots, or some advice on how to get ids with the dots encoded
out of the url helpers. Or some other elegant solution, of course!

Thanks,
Pete
-- 
Posted via http://www.ruby-forum.com/.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to