On 27 August 2010 15:22, Glenn Goodrich
<lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org>
wrote:> I''d like to have a route that looks like:
>
> http://webhost.com/myresource/random.server.com/folderOnServer/resourceName
>
> The params I''d like to come out of that are:
>
> :server = random.server.com
> :folder = folderOnServer
> :resource = resourceName
>
> So, I do this:
>
> get ''myresource/*server/(:folder)/*mapservice'' =>
"controller#action",
> :constraints ={:server=>/[^\/]+/}
>
> Which I hope is saying, I want to match all characters for the server
> param, until you get to the first /.
>
> What is happening is:
>
> :server = random.server.com/folderOnServer
> :folder = nil
> :resource = resourceName
>
> Any suggestions on what I am doing wrong?
The asterisk before ''server'' turns on globbing (which makes it
gobble
up as much of the URL as possible), and the parentheses around
'':folder'' tell the router that it''s an optional part
of the route. So
the router shoves as much as it can into the ''server''
parameter, and
leaves out the ''folder'' parameter.
Also, I don''t really understand the ''*mapservice'' bit
of your route,
but guessing that''s just a typo.
I would just try:
get ''myresource/:server/:folder/:resource'' =>
''votes#cast'',
:constraints => {:server => /[^\/]+/}
(where the constraint on ''server'' is just to allow
''.''s).
Chris
--
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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.