In my application I’ve some named routes defined this way…
map.label_context1 ‘:context1/label’, :controller => ‘mycontroller’
map.label_context2 ‘:context1/:context2/label’, :controller =>
map.label_context3 ‘:context1/:context2/:context3/label’, :controller
The controller for the 3 routes is the same but obviously it behaves
differently whether 1 or 2 or 3 contexts are given.
The routes and the controller just work fine BUT…
Now, on the same page of my application, I want to generate links for
all the possible levels my controller can act…
I.e. if I’m in context3 I want to provide links to context1, context2
and context3 urls
So I’ve done something like
This code just returns n times the most complete url.
i.e. if I’m in context3 the code above will generate 3 identical urls
Can someone explain to me this beahviour?
my opinion is that if the *_url method is overfed with parameters that
exceed the parameters of the named route, the method will fallback on
a standard route generation returning the most complete url.
How can I force the *_url method to generate the url from the given
Or, how can I ask a named route which parameters is able to take, so I
can dynamycally delete the parameters in surplus?