Re: Route generation problems

Gustav Paul
Mon, 30 Oct 2006 17:41:37 -0000

Charlie Hubbard wrote:
> Hi,
>
> I have an outstanding problem with route generation.  Right now if I
> generate a route with the following syntax.
>
> url_for( :controller => "foo", :action => "bar",
:id => 4 )
>
> I get
>
> /foo/bar/4
>
> I always get a URL without a trailing slash on the end.  I want to add a
> trailing slash always after the ID parameter.  I have generated HTML
> content that I want to always append to the root URL like above.  And I
> keep getting bad URLS.  I also have another problem when doing route
> generation where:
>
> url_for( :controller => "foo", :action => "bar",
:id => 4, :page => 5 )
>
> returns:
>
> /foo/bar/4?page=5
>
> Eventhough my route configuration is:
>
>   map.connect "foo/bar/:id/:page",
>         :controller => "Foo",
>         :action => "bar",
>         :requirements => { :id => /\d+/,
>                            :page => /(\d+)|(\w+\.html)/ }
>
> This rule is never used when generating routes, and it''s really
> important because of the problem I showed above.
>
> Any help please?
>
> Charlie
>
>
Hey C,

I guess you already tried the following, but just in case:



  map.connect "foo/bar/:id/:page",
        :controller => "foo",
        :action => "bar",
        :requirements => { :id => /\d+/,
                           :page => /(\d+)|(\w+\.html)/ }

  # I''ve never had explicit x.html
  # requests routed to rails though
  # so I''ve no idea if it''ll work

  map.connect ":controller/:action/:id/"
  map.connect ":controller/:action/:id"

  # should solve the trailing slash issue


Gustav Paul
gustav-PUm+PnBUKx7YkQIYctQFYw@public.gmane.org