El 05/07/2010, a las 20:18, Randy Harmon escribió: > I'm uncertain about the need to easily specify one-directional routes. > While in theory it sounds fine, I don't understand why you'd want to > specify either a route that isn't recognized (why bother routing it, in > this case?) or one that doesn't generate the given path with url_for() > (does it generate some other path instead?).
Well, I find that most routes map in both directions (ie. basically anything that is specified using "resource" in the config/routes.rb file) but from time to time I find non-resource routes that map only one way (ie. are routable, but url_for won't necessarily generate what you want). Mostly they seem to be routes declared with "match" like this one: resource :posts match '/posts/page/:page' => 'posts#index', :as => 'paginated_posts' You can see here how the mapping doesn't work out the same in both directions: - recognition: '/posts/page/2' is recognized as 'posts#index' with :page => '2' - generation: 'posts#index' with :page => '2' generates '/posts?page=2' Sometimes they can be reorganized so that they _do_ map in both directions; eg: resources :posts do collection do get 'page/:page' => 'posts#index' end end With that change, Rails does know how to do the reverse mapping. But then there are ones which, as far as I know, can't be reorganized in that way; here's one example from my current app: # the resource resource :links # the shortcut to the links#show action match 'l/:id' => 'links#show' According to my experiments, the Rails routing assertions will say that URLs like 'l/foo' are routable, but won't generate in reverse. So there's a case for "assert_recognizes"/"map_to", for sure. I agree with you that it doesn't make much sense to specify an unrecognizable route, but I guess it is conceivable that you could have routes that were recognizable in one direction, but only generated if fed a different set of parameters. So you'd need to test them using a pair of "map_from"/"map_to" or "assert_generates"/"assert_recognizes". Cheers, Wincent _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users