Multiple routes to same controller action


#1

my routes file has the following lines

map.resources :players, :has_many => :matches
map.resources :tourney, :has_many => :matches

now I want to be able to display all the matches played by a player and
also all the matches played in the entire tournament. I have two routes
available

tourney_matches GET /tourney/:tourney_id/matches
{:controller=>“matches”, :action=>“index”}

player_matches GET /player/:player_id/matches {:controller=>“matches”,
:action=>“index”}

both these paths call the same action in the matches controller, so how
is this supposed to work?


#2

You will have to add an “if” on your index action, if there is a
“params[:tourney_id]” load the tourney and then load the matches,
otherwise load the player and the matches.

Maurício Linhares
http://alinhavado.wordpress.com/ (pt-br) | http://blog.codevader.com/
(en)

On Thu, Jan 15, 2009 at 1:14 AM, Maulin pa


#3

Maurício Linhares wrote:

You will have to add an “if” on your index action, if there is a
“params[:tourney_id]” load the tourney and then load the matches,
otherwise load the player and the matches.

Thanks!