2009-08-24 7 views
0

アクションを持つPersonControllerを考えてみましょう。ユーザーはすべての人物を一覧表示するか、男性または女性のみを一覧表示するかを選択できます。現在、それを行うために、彼らはルートルートからのパラメータの指定

map.list_people "people/:type", 
    :conditions => { :method => :get }, 
    :requirements => { :type => /a|m|f/ }, 
    :defaults => { :type => 'a' } 

/people/aがちょうど/people/と同じように動作し、すべての人々が一覧表示されます)に対応し、/people/mまたは/people/fに行く必要があるだろう。

私はPersonController#list(DRYに行くだろうどちらも二つの経路、(代わりにpeople/:typeの)/males//females/を持つことができるように私のルーティングを変更したい - 脇追加のパラメータから、他のすべてを検索される何に同じです)、本来はtypeを設定します - これを行う方法はありますか?

答えて

3
map.with_options(:controller => "people", :action => "index") do |people| 
    people.males 'males', :type => "m" 
    people.females 'females', :type => "f" 
end 

次に、あなたは、このためのパスを取得するためにmales_pathまたはmales_urlを行うことができるはず、と私はあなたが、女性へのパスを取得するために何をすべきかを推測することができます確信しています。

+0

パーフェクト、それは私が探していたものですが、ルーティングガイドで見つけることができませんでした。ありがとう! –

関連する問題