2009-05-31 13 views
0

パスを指定して子パスを取得する方法はありますか?ルーティング検査

私は、次のルートを与えられた意味:

map.resources :users do |user| 
    user.resources :articles 
    ... 
end 

私はパス= "ユーザーに/ 1" を与える場合は、ルートに ユーザー/ 1 /編集を取得する方法があり、ユーザー/ 1 /記事、ユーザー/ 1/articles/new?

ありがとうございます。 -Satynos

答えて

0

ルート定義があるうん、非常にアクセスしやすい。次のコードは、あなたに特定のコントローラのためのルートのリストを取得する必要があります:セグメントは、実際に出て分割され

rts = ActionController::Routing::Routes.routes.reject do |rt| 
    rt.defaults[:controller] != "users" || !rt.significant_keys.index(:id) 
end; nil 
rts.each do |rt| 
    puts "Route: #{rt.segments}" 
end; nil 

rts = ActionController::Routing::Routes.routes.reject do |rt| 
    rt.defaults[:controller] != "users" || !rt.significant_keys.index(:id) 
end 

あなたは、ルートを確認するために、コンソールに次のコードを実行することができます配列でもあります。つまり、ユーザIDが必要なルートだけにリストをフィルタすることは簡単です。それを行うためのrakeタスクがあり

2

、nixのマシンを離れるから

rake routes | grep "users" 

を行うこと

あなたがRailsのアプリでやりたい巧妙な何かがある場合は、チェックする価値があるかもしれませんレール/レールの下にあるもののソース