CSN
2006-Feb-08 21:09 UTC
[Rails] routing: requiring requirements for non-existent params?
With this route: map.connect ''items/:subject/:id'', :controller=>''items'', :action=>''show_redirect'', :requirements => {:subject => /.+/, :id => /\d+/} Is it possible to have it match these URLs: items/biology/123 items/chemistry/234 items/math/456 But not these: items/new items/list ... The problem is that :requirements only applies if that param exists. I''d like to make it so that that route only applies if all params do in fact exist. I''d do it with redirects in Lighty, but I want to send 301 redirects and I''m not sure what code redirect.url sends (probably 302). Thanks for any help! csn __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
Wilson Bilkovich
2006-Feb-09 03:13 UTC
[Rails] routing: requiring requirements for non-existent params?
On 2/8/06, CSN <cool_screen_name90001@yahoo.com> wrote:> With this route: > map.connect ''items/:subject/:id'', > :controller=>''items'', :action=>''show_redirect'', > :requirements => {:subject => /.+/, :id => /\d+/} > > Is it possible to have it match these URLs: > > items/biology/123 > items/chemistry/234 > items/math/456 > > But not these: > > items/new > items/list > ... > > The problem is that :requirements only applies if that > param exists. I''d like to make it so that that route > only applies if all params do in fact exist. I''d do it > with redirects in Lighty, but I want to send 301 > redirects and I''m not sure what code redirect.url > sends (probably 302). > > Thanks for any help! > csn >This might be a crazy hack, but what happens if you change the route to be: map.connect ''items/:subject/:id'', :id => ''crazy'', :controller=>''items'', :action=>''show_redirect'', :requirements => {:subject => /.+/, :id => /\d+/} The idea being that :id defaults to a value that doesn''t match the requirements. Totally untested, may not work, etc.
Possibly Parallel Threads
- Difficult process of restarting SCGI, Lighttpd, Apache, sessions
- undefined method `include''
- Building a conditions clause (for find) of multiple optional params?
- categories and admin/categories - different controllers and templates?
- Page caching feeds and cache file extensions