有没有办法让路径得到子路径?
我的意思是给出以下路线:
map.resources :users do |user|
user.resources :articles
...
end
如果我给出path =“users / 1”,有没有办法获得路线 users / 1 / edit,users / 1 / articles,users / 1 / articles / new?
提前致谢。 -Satynos
答案 0 :(得分:2)
这样做有一个rake任务,
rake routes | grep "users"
从nix机器出来做
如果你想在Rails应用程序中做一些聪明的事情,可能值得检查rails / railties下的源代码
答案 1 :(得分:0)
答案 2 :(得分:0)
是的,路线定义非常容易接近。以下代码应该为您提供特定控制器的路由列表:
rts = ActionController::Routing::Routes.routes.reject do |rt|
rt.defaults[:controller] != "users" || !rt.significant_keys.index(:id)
end
您可以在控制台中运行以下代码以查看路径:
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
这些段实际上也被分解为一个数组,这意味着应该很容易将列表进一步过滤到只需要用户ID的路由。