Route generation problems

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

Charlie H. 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:

Well I found the answer to the first question after piling through the
source. There is a :trailing_slash option you can add to your url_for
or link_to to get the trailing slash. Still don’t have an answer for
the second question. I guess it’s back to the source.

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

Charlie H. wrote:

/foo/bar/4?page=5
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 P.
[email protected]