我试图找出一种干净干爽的方法来扩展 url_for ,以便它提供一个基于动态的默认参数。我知道这听起来很奇怪,让我解释一下:
我有一组位于动态范围下的嵌套资源路由:
scope "/:network", constraints: {:network => /[^\/]+/} do
constraints DomainConstraint.new do
resources :users do
resources :posts
end
end
end
这给出了如下路线:
/mysite.com/users/mike
/someothersite.com/users/sally
为了在视图中生成这些路线,我可以很容易地做到:
mike = User.find_by_name("mike")
sally = User.find_by_name("sally")
user_path(mike.network, mike)
user_path(sally.network, sally)
但是,这对我来说似乎不是很干燥,因为每个用户的网络都是固定的。我宁愿能够简洁地说:
user_path(mike)